<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <title>Test Report</title>
    <style>body {
  font-family: Helvetica, Arial, sans-serif;
  font-size: 12px;
  /* do not increase min-width as some may use split screens */
  min-width: 800px;
  color: #999;
}

h1 {
  font-size: 24px;
  color: black;
}

h2 {
  font-size: 16px;
  color: black;
}

p {
  color: black;
}

a {
  color: #999;
}

table {
  border-collapse: collapse;
}

/******************************
 * SUMMARY INFORMATION
 ******************************/
#environment td {
  padding: 5px;
  border: 1px solid #E6E6E6;
}
#environment tr:nth-child(odd) {
  background-color: #f6f6f6;
}

/******************************
 * TEST RESULT COLORS
 ******************************/
span.passed,
.passed .col-result {
  color: green;
}

span.skipped,
span.xfailed,
span.rerun,
.skipped .col-result,
.xfailed .col-result,
.rerun .col-result {
  color: orange;
}

span.error,
span.failed,
span.xpassed,
.error .col-result,
.failed .col-result,
.xpassed .col-result {
  color: red;
}

/******************************
 * RESULTS TABLE
 *
 * 1. Table Layout
 * 2. Extra
 * 3. Sorting items
 *
 ******************************/
/*------------------
 * 1. Table Layout
 *------------------*/
#results-table {
  border: 1px solid #e6e6e6;
  color: #999;
  font-size: 12px;
  width: 100%;
}
#results-table th,
#results-table td {
  padding: 5px;
  border: 1px solid #E6E6E6;
  text-align: left;
}
#results-table th {
  font-weight: bold;
}

/*------------------
 * 2. Extra
 *------------------*/
.log {
  background-color: #e6e6e6;
  border: 1px solid #e6e6e6;
  color: black;
  display: block;
  font-family: "Courier New", Courier, monospace;
  height: 230px;
  overflow-y: scroll;
  padding: 5px;
  white-space: pre-wrap;
}
.log:only-child {
  height: inherit;
}

div.image {
  border: 1px solid #e6e6e6;
  float: right;
  height: 240px;
  margin-left: 5px;
  overflow: hidden;
  width: 320px;
}
div.image img {
  width: 320px;
}

div.video {
  border: 1px solid #e6e6e6;
  float: right;
  height: 240px;
  margin-left: 5px;
  overflow: hidden;
  width: 320px;
}
div.video video {
  overflow: hidden;
  width: 320px;
  height: 240px;
}

.collapsed {
  display: none;
}

.expander::after {
  content: " (show details)";
  color: #BBB;
  font-style: italic;
  cursor: pointer;
}

.collapser::after {
  content: " (hide details)";
  color: #BBB;
  font-style: italic;
  cursor: pointer;
}

/*------------------
 * 3. Sorting items
 *------------------*/
.sortable {
  cursor: pointer;
}

.sort-icon {
  font-size: 0px;
  float: left;
  margin-right: 5px;
  margin-top: 5px;
  /*triangle*/
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
}
.inactive .sort-icon {
  /*finish triangle*/
  border-top: 8px solid #E6E6E6;
}
.asc.active .sort-icon {
  /*finish triangle*/
  border-bottom: 8px solid #999;
}
.desc.active .sort-icon {
  /*finish triangle*/
  border-top: 8px solid #999;
}
</style></head>
  <body onLoad="init()">
    <script>/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */


function toArray(iter) {
    if (iter === null) {
        return null;
    }
    return Array.prototype.slice.call(iter);
}

function find(selector, elem) { // eslint-disable-line no-redeclare
    if (!elem) {
        elem = document;
    }
    return elem.querySelector(selector);
}

function findAll(selector, elem) {
    if (!elem) {
        elem = document;
    }
    return toArray(elem.querySelectorAll(selector));
}

function sortColumn(elem) {
    toggleSortStates(elem);
    const colIndex = toArray(elem.parentNode.childNodes).indexOf(elem);
    let key;
    if (elem.classList.contains('result')) {
        key = keyResult;
    } else if (elem.classList.contains('links')) {
        key = keyLink;
    } else {
        key = keyAlpha;
    }
    sortTable(elem, key(colIndex));
}

function showAllExtras() { // eslint-disable-line no-unused-vars
    findAll('.col-result').forEach(showExtras);
}

function hideAllExtras() { // eslint-disable-line no-unused-vars
    findAll('.col-result').forEach(hideExtras);
}

function showExtras(colresultElem) {
    const extras = colresultElem.parentNode.nextElementSibling;
    const expandcollapse = colresultElem.firstElementChild;
    extras.classList.remove('collapsed');
    expandcollapse.classList.remove('expander');
    expandcollapse.classList.add('collapser');
}

function hideExtras(colresultElem) {
    const extras = colresultElem.parentNode.nextElementSibling;
    const expandcollapse = colresultElem.firstElementChild;
    extras.classList.add('collapsed');
    expandcollapse.classList.remove('collapser');
    expandcollapse.classList.add('expander');
}

function showFilters() {
    const filterItems = document.getElementsByClassName('filter');
    for (let i = 0; i < filterItems.length; i++)
        filterItems[i].hidden = false;
}

function addCollapse() {
    // Add links for show/hide all
    const resulttable = find('table#results-table');
    const showhideall = document.createElement('p');
    showhideall.innerHTML = '<a href="javascript:showAllExtras()">Show all details</a> / ' +
                            '<a href="javascript:hideAllExtras()">Hide all details</a>';
    resulttable.parentElement.insertBefore(showhideall, resulttable);

    // Add show/hide link to each result
    findAll('.col-result').forEach(function(elem) {
        const collapsed = getQueryParameter('collapsed') || 'Passed';
        const extras = elem.parentNode.nextElementSibling;
        const expandcollapse = document.createElement('span');
        if (extras.classList.contains('collapsed')) {
            expandcollapse.classList.add('expander');
        } else if (collapsed.includes(elem.innerHTML)) {
            extras.classList.add('collapsed');
            expandcollapse.classList.add('expander');
        } else {
            expandcollapse.classList.add('collapser');
        }
        elem.appendChild(expandcollapse);

        elem.addEventListener('click', function(event) {
            if (event.currentTarget.parentNode.nextElementSibling.classList.contains('collapsed')) {
                showExtras(event.currentTarget);
            } else {
                hideExtras(event.currentTarget);
            }
        });
    });
}

function getQueryParameter(name) {
    const match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}

function init () { // eslint-disable-line no-unused-vars
    resetSortHeaders();

    addCollapse();

    showFilters();

    sortColumn(find('.initial-sort'));

    findAll('.sortable').forEach(function(elem) {
        elem.addEventListener('click',
            function() {
                sortColumn(elem);
            }, false);
    });
}

function sortTable(clicked, keyFunc) {
    const rows = findAll('.results-table-row');
    const reversed = !clicked.classList.contains('asc');
    const sortedRows = sort(rows, keyFunc, reversed);
    /* Whole table is removed here because browsers acts much slower
     * when appending existing elements.
     */
    const thead = document.getElementById('results-table-head');
    document.getElementById('results-table').remove();
    const parent = document.createElement('table');
    parent.id = 'results-table';
    parent.appendChild(thead);
    sortedRows.forEach(function(elem) {
        parent.appendChild(elem);
    });
    document.getElementsByTagName('BODY')[0].appendChild(parent);
}

function sort(items, keyFunc, reversed) {
    const sortArray = items.map(function(item, i) {
        return [keyFunc(item), i];
    });

    sortArray.sort(function(a, b) {
        const keyA = a[0];
        const keyB = b[0];

        if (keyA == keyB) return 0;

        if (reversed) {
            return keyA < keyB ? 1 : -1;
        } else {
            return keyA > keyB ? 1 : -1;
        }
    });

    return sortArray.map(function(item) {
        const index = item[1];
        return items[index];
    });
}

function keyAlpha(colIndex) {
    return function(elem) {
        return elem.childNodes[1].childNodes[colIndex].firstChild.data.toLowerCase();
    };
}

function keyLink(colIndex) {
    return function(elem) {
        const dataCell = elem.childNodes[1].childNodes[colIndex].firstChild;
        return dataCell == null ? '' : dataCell.innerText.toLowerCase();
    };
}

function keyResult(colIndex) {
    return function(elem) {
        const strings = ['Error', 'Failed', 'Rerun', 'XFailed', 'XPassed',
            'Skipped', 'Passed'];
        return strings.indexOf(elem.childNodes[1].childNodes[colIndex].firstChild.data);
    };
}

function resetSortHeaders() {
    findAll('.sort-icon').forEach(function(elem) {
        elem.parentNode.removeChild(elem);
    });
    findAll('.sortable').forEach(function(elem) {
        const icon = document.createElement('div');
        icon.className = 'sort-icon';
        icon.textContent = 'vvv';
        elem.insertBefore(icon, elem.firstChild);
        elem.classList.remove('desc', 'active');
        elem.classList.add('asc', 'inactive');
    });
}

function toggleSortStates(elem) {
    //if active, toggle between asc and desc
    if (elem.classList.contains('active')) {
        elem.classList.toggle('asc');
        elem.classList.toggle('desc');
    }

    //if inactive, reset all other functions and add ascending active
    if (elem.classList.contains('inactive')) {
        resetSortHeaders();
        elem.classList.remove('inactive');
        elem.classList.add('active');
    }
}

function isAllRowsHidden(value) {
    return value.hidden == false;
}

function filterTable(elem) { // eslint-disable-line no-unused-vars
    const outcomeAtt = 'data-test-result';
    const outcome = elem.getAttribute(outcomeAtt);
    const classOutcome = outcome + ' results-table-row';
    const outcomeRows = document.getElementsByClassName(classOutcome);

    for(let i = 0; i < outcomeRows.length; i++){
        outcomeRows[i].hidden = !elem.checked;
    }

    const rows = findAll('.results-table-row').filter(isAllRowsHidden);
    const allRowsHidden = rows.length == 0 ? true : false;
    const notFoundMessage = document.getElementById('not-found-message');
    notFoundMessage.hidden = !allRowsHidden;
}
</script>
    <h1>report.html</h1>
    <p>Report generated on 01-Jul-2021 at 14:50:48 by <a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a> v3.1.1</p>
    <h2>Environment</h2>
    <table id="environment">
      <tr>
        <td>JAVA_HOME</td>
        <td>C:\JAVA\jdk1.8.0_144</td></tr>
      <tr>
        <td>Packages</td>
        <td>{"pluggy": "0.13.1", "py": "1.10.0", "pytest": "6.2.4"}</td></tr>
      <tr>
        <td>Platform</td>
        <td>Windows-7-6.1.7601-SP1</td></tr>
      <tr>
        <td>Plugins</td>
        <td>{"forked": "1.3.0", "html": "3.1.1", "metadata": "1.11.0", "pytest_check": "1.0.1", "rerunfailures": "10.0", "xdist": "2.3.0"}</td></tr>
      <tr>
        <td>Python</td>
        <td>3.8.5</td></tr></table>
    <h2>Summary</h2>
    <p>2 tests ran in 10.77 seconds. </p>
    <p class="filter" hidden="true">(Un)check the boxes to filter the results.</p><input checked="true" class="filter" data-test-result="passed" disabled="true" hidden="true" name="filter_checkbox" onChange="filterTable(this)" type="checkbox"/><span class="passed">0 passed</span>, <input checked="true" class="filter" data-test-result="skipped" disabled="true" hidden="true" name="filter_checkbox" onChange="filterTable(this)" type="checkbox"/><span class="skipped">0 skipped</span>, <input checked="true" class="filter" data-test-result="failed" hidden="true" name="filter_checkbox" onChange="filterTable(this)" type="checkbox"/><span class="failed">2 failed</span>, <input checked="true" class="filter" data-test-result="error" disabled="true" hidden="true" name="filter_checkbox" onChange="filterTable(this)" type="checkbox"/><span class="error">0 errors</span>, <input checked="true" class="filter" data-test-result="xfailed" disabled="true" hidden="true" name="filter_checkbox" onChange="filterTable(this)" type="checkbox"/><span class="xfailed">0 expected failures</span>, <input checked="true" class="filter" data-test-result="xpassed" disabled="true" hidden="true" name="filter_checkbox" onChange="filterTable(this)" type="checkbox"/><span class="xpassed">0 unexpected passes</span>, <input checked="true" class="filter" data-test-result="rerun" hidden="true" name="filter_checkbox" onChange="filterTable(this)" type="checkbox"/><span class="rerun">6 rerun</span>
    <h2>Results</h2>
    <table id="results-table">
      <thead id="results-table-head">
        <tr>
          <th class="sortable result initial-sort" col="result">Result</th>
          <th class="sortable" col="name">Test</th>
          <th class="sortable" col="duration">Duration</th>
          <th class="sortable links" col="links">Links</th></tr>
        <tr hidden="true" id="not-found-message">
          <th colspan="4">No results found. Try to check the filters</th></tr></thead>
      <tbody class="failed results-table-row">
        <tr>
          <td class="col-result">Failed</td>
          <td class="col-name">day02/test_register2.py::test_register[reg_data0]</td>
          <td class="col-duration">1.00</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div class="log">self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>&gt;           conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:169: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>                sock.connect(sa)<br/>                return sock<br/>    <br/>            except socket.error as e:<br/>                err = e<br/>                if sock is not None:<br/>                    sock.close()<br/>                    sock = None<br/>    <br/>        if err is not None:<br/>&gt;           raise err<br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:96: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>&gt;               sock.connect(sa)<br/><span class="error">E               ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:86: ConnectionRefusedError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004B5C8E0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>&gt;           httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:699: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004B5C8E0&gt;<br/>conn = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>timeout = Timeout(connect=None, read=None, total=None), chunked = False<br/>httplib_request_kw = {&#x27;body&#x27;: &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;, &#x27;headers&#x27;: {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Enc...cept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}}<br/>timeout_obj = Timeout(connect=None, read=None, total=None)<br/><br/>    def _make_request(<br/>        self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Perform a request on a given urllib connection object taken from our<br/>        pool.<br/>    <br/>        :param conn:<br/>            a connection from one of our connection pools<br/>    <br/>        :param timeout:<br/>            Socket timeout in seconds for the request. This can be a<br/>            float or integer, which will set the same timeout value for<br/>            the socket connect and the socket read, or an instance of<br/>            :class:`urllib3.util.Timeout`, which gives you more fine-grained<br/>            control over your timeouts.<br/>        &quot;&quot;&quot;<br/>        self.num_requests += 1<br/>    <br/>        timeout_obj = self._get_timeout(timeout)<br/>        timeout_obj.start_connect()<br/>        conn.timeout = timeout_obj.connect_timeout<br/>    <br/>        # Trigger any extra validation we need to do.<br/>        try:<br/>            self._validate_conn(conn)<br/>        except (SocketTimeout, BaseSSLError) as e:<br/>            # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.<br/>            self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)<br/>            raise<br/>    <br/>        # conn.request() calls http.client.*.request, not the method in<br/>        # urllib3.request. It also calls makefile (recv) on the socket.<br/>        try:<br/>            if chunked:<br/>                conn.request_chunked(method, url, **httplib_request_kw)<br/>            else:<br/>&gt;               conn.request(method, url, **httplib_request_kw)<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:394: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers=None):<br/>        if headers is None:<br/>            headers = {}<br/>        else:<br/>            # Avoid modifying the headers passed into .request()<br/>            headers = headers.copy()<br/>        if &quot;user-agent&quot; not in (six.ensure_str(k.lower()) for k in headers):<br/>            headers[&quot;User-Agent&quot;] = _get_default_user_agent()<br/>&gt;       super(HTTPConnection, self).request(method, url, body=body, headers=headers)<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:234: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers={}, *,<br/>                encode_chunked=False):<br/>        &quot;&quot;&quot;Send a complete request to the server.&quot;&quot;&quot;<br/>&gt;       self._send_request(method, url, body, headers, encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1255: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>encode_chunked = False<br/><br/>    def _send_request(self, method, url, body, headers, encode_chunked):<br/>        # Honor explicitly requested Host: and Accept-Encoding: headers.<br/>        header_names = frozenset(k.lower() for k in headers)<br/>        skips = {}<br/>        if &#x27;host&#x27; in header_names:<br/>            skips[&#x27;skip_host&#x27;] = 1<br/>        if &#x27;accept-encoding&#x27; in header_names:<br/>            skips[&#x27;skip_accept_encoding&#x27;] = 1<br/>    <br/>        self.putrequest(method, url, **skips)<br/>    <br/>        # chunked encoding will happen if HTTP/1.1 is used and either<br/>        # the caller passes encode_chunked=True or the following<br/>        # conditions hold:<br/>        # 1. content-length has not been explicitly set<br/>        # 2. the body is a file or iterable, but not a str or bytes-like<br/>        # 3. Transfer-Encoding has NOT been explicitly set by the caller<br/>    <br/>        if &#x27;content-length&#x27; not in header_names:<br/>            # only chunk body if not explicitly set for backwards<br/>            # compatibility, assuming the client code is already handling the<br/>            # chunking<br/>            if &#x27;transfer-encoding&#x27; not in header_names:<br/>                # if content-length cannot be automatically determined, fall<br/>                # back to chunked encoding<br/>                encode_chunked = False<br/>                content_length = self._get_content_length(body, method)<br/>                if content_length is None:<br/>                    if body is not None:<br/>                        if self.debuglevel &gt; 0:<br/>                            print(&#x27;Unable to determine size of %r&#x27; % body)<br/>                        encode_chunked = True<br/>                        self.putheader(&#x27;Transfer-Encoding&#x27;, &#x27;chunked&#x27;)<br/>                else:<br/>                    self.putheader(&#x27;Content-Length&#x27;, str(content_length))<br/>        else:<br/>            encode_chunked = False<br/>    <br/>        for hdr, value in headers.items():<br/>            self.putheader(hdr, value)<br/>        if isinstance(body, str):<br/>            # RFC 2616 Section 3.7.1 says that text default has a<br/>            # default charset of iso-8859-1.<br/>            body = _encode(body, &#x27;body&#x27;)<br/>&gt;       self.endheaders(body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1301: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/>message_body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/><br/>    def endheaders(self, message_body=None, *, encode_chunked=False):<br/>        &quot;&quot;&quot;Indicate that the last header line has been sent to the server.<br/>    <br/>        This method sends the request to the server.  The optional message_body<br/>        argument can be used to pass a message body associated with the<br/>        request.<br/>        &quot;&quot;&quot;<br/>        if self.__state == _CS_REQ_STARTED:<br/>            self.__state = _CS_REQ_SENT<br/>        else:<br/>            raise CannotSendHeader()<br/>&gt;       self._send_output(message_body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1250: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/>message_body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>encode_chunked = False<br/><br/>    def _send_output(self, message_body=None, encode_chunked=False):<br/>        &quot;&quot;&quot;Send the currently buffered request and clear the buffer.<br/>    <br/>        Appends an extra \\r\\n to the buffer.<br/>        A message_body may be specified, to be appended to the request.<br/>        &quot;&quot;&quot;<br/>        self._buffer.extend((b&quot;&quot;, b&quot;&quot;))<br/>        msg = b&quot;\r\n&quot;.join(self._buffer)<br/>        del self._buffer[:]<br/>&gt;       self.send(msg)<br/><br/>C:\Python38\lib\http\client.py:1010: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/>data = b&#x27;POST /futureloan/mvc/api/member/register HTTP/1.1\r\nHost: 192.168.150.84:8088\r\nUser-Agent: python-requests/2.25.1...Accept: */*\r\nConnection: keep-alive\r\nContent-Length: 42\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n&#x27;<br/><br/>    def send(self, data):<br/>        &quot;&quot;&quot;Send `data&#x27; to the server.<br/>        ``data`` can be a string object, a bytes object, an array object, a<br/>        file-like object that supports a .read() method, or an iterable object.<br/>        &quot;&quot;&quot;<br/>    <br/>        if self.sock is None:<br/>            if self.auto_open:<br/>&gt;               self.connect()<br/><br/>C:\Python38\lib\http\client.py:950: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/><br/>    def connect(self):<br/>&gt;       conn = self._new_conn()<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:200: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>            conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/>    <br/>        except SocketTimeout:<br/>            raise ConnectTimeoutError(<br/>                self,<br/>                &quot;Connection to %s timed out. (connect timeout=%s)&quot;<br/>                % (self.host, self.timeout),<br/>            )<br/>    <br/>        except SocketError as e:<br/>&gt;           raise NewConnectionError(<br/>                self, &quot;Failed to establish a new connection: %s&quot; % e<br/>            )<br/><span class="error">E           urllib3.exceptions.NewConnectionError: &lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:181: NewConnectionError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004B5C280&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>&gt;               resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:439: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004B5C8E0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>            httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/>    <br/>            # If we&#x27;re going to release the connection in ``finally:``, then<br/>            # the response doesn&#x27;t need to know about the connection. Otherwise<br/>            # it will also try to release it and we&#x27;ll have a double-release<br/>            # mess.<br/>            response_conn = conn if not release_conn else None<br/>    <br/>            # Pass method to Response for length checking<br/>            response_kw[&quot;request_method&quot;] = method<br/>    <br/>            # Import httplib&#x27;s response into our own wrapper object<br/>            response = self.ResponseCls.from_httplib(<br/>                httplib_response,<br/>                pool=self,<br/>                connection=response_conn,<br/>                retries=retries,<br/>                **response_kw<br/>            )<br/>    <br/>            # Everything went great!<br/>            clean_exit = True<br/>    <br/>        except EmptyPoolError:<br/>            # Didn&#x27;t get a connection from the pool, no need to clean up<br/>            clean_exit = True<br/>            release_this_conn = False<br/>            raise<br/>    <br/>        except (<br/>            TimeoutError,<br/>            HTTPException,<br/>            SocketError,<br/>            ProtocolError,<br/>            BaseSSLError,<br/>            SSLError,<br/>            CertificateError,<br/>        ) as e:<br/>            # Discard the connection for these exceptions. It will be<br/>            # replaced during the next _get_conn() call.<br/>            clean_exit = False<br/>            if isinstance(e, (BaseSSLError, CertificateError)):<br/>                e = SSLError(e)<br/>            elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:<br/>                e = ProxyError(&quot;Cannot connect to proxy.&quot;, e)<br/>            elif isinstance(e, (SocketError, HTTPException)):<br/>                e = ProtocolError(&quot;Connection aborted.&quot;, e)<br/>    <br/>&gt;           retries = retries.increment(<br/>                method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:755: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;, response = None<br/>error = NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;)<br/>_pool = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004B5C8E0&gt;<br/>_stacktrace = &lt;traceback object at 0x0000000004BE3F00&gt;<br/><br/>    def increment(<br/>        self,<br/>        method=None,<br/>        url=None,<br/>        response=None,<br/>        error=None,<br/>        _pool=None,<br/>        _stacktrace=None,<br/>    ):<br/>        &quot;&quot;&quot;Return a new Retry object with incremented retry counters.<br/>    <br/>        :param response: A response object, or None, if the server did not<br/>            return a response.<br/>        :type response: :class:`~urllib3.response.HTTPResponse`<br/>        :param Exception error: An error encountered during the request, or<br/>            None if the response was received successfully.<br/>    <br/>        :return: A new ``Retry`` object.<br/>        &quot;&quot;&quot;<br/>        if self.total is False and error:<br/>            # Disabled, indicate to re-raise the error.<br/>            raise six.reraise(type(error), error, _stacktrace)<br/>    <br/>        total = self.total<br/>        if total is not None:<br/>            total -= 1<br/>    <br/>        connect = self.connect<br/>        read = self.read<br/>        redirect = self.redirect<br/>        status_count = self.status<br/>        other = self.other<br/>        cause = &quot;unknown&quot;<br/>        status = None<br/>        redirect_location = None<br/>    <br/>        if error and self._is_connection_error(error):<br/>            # Connect retry?<br/>            if connect is False:<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif connect is not None:<br/>                connect -= 1<br/>    <br/>        elif error and self._is_read_error(error):<br/>            # Read retry?<br/>            if read is False or not self._is_method_retryable(method):<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif read is not None:<br/>                read -= 1<br/>    <br/>        elif error:<br/>            # Other retry?<br/>            if other is not None:<br/>                other -= 1<br/>    <br/>        elif response and response.get_redirect_location():<br/>            # Redirect retry?<br/>            if redirect is not None:<br/>                redirect -= 1<br/>            cause = &quot;too many redirects&quot;<br/>            redirect_location = response.get_redirect_location()<br/>            status = response.status<br/>    <br/>        else:<br/>            # Incrementing because of a server error like a 500 in<br/>            # status_forcelist and the given method is in the allowed_methods<br/>            cause = ResponseError.GENERIC_ERROR<br/>            if response and response.status:<br/>                if status_count is not None:<br/>                    status_count -= 1<br/>                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)<br/>                status = response.status<br/>    <br/>        history = self.history + (<br/>            RequestHistory(method, url, error, status, redirect_location),<br/>        )<br/>    <br/>        new_retry = self.new(<br/>            total=total,<br/>            connect=connect,<br/>            read=read,<br/>            redirect=redirect,<br/>            status=status_count,<br/>            other=other,<br/>            history=history,<br/>        )<br/>    <br/>        if new_retry.is_exhausted():<br/>&gt;           raise MaxRetryError(_pool, url, error or ResponseError(cause))<br/><span class="error">E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\retry.py:574: MaxRetryError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>reg_data = [&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]<br/><br/>    def test_register(reg_data):<br/>        print(f&quot;测试数据为：{reg_data}&quot;)<br/>        url = &quot;http://192.168.150.84:8088/futureloan/mvc/api/member/register&quot;<br/>        cs = {<br/>            &quot;mobilephone&quot;:reg_data[0],<br/>            &quot;pwd&quot;:reg_data[1],<br/>            &quot;regname&quot;:reg_data[2]<br/>        }<br/>&gt;       r = requests.post(url,data=cs)<br/><br/>test_register2.py:18: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>C:\Python38\lib\site-packages\requests\api.py:119: in post<br/>    return request(&#x27;post&#x27;, url, data=data, json=json, **kwargs)<br/>C:\Python38\lib\site-packages\requests\api.py:61: in request<br/>    return session.request(method=method, url=url, **kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:542: in request<br/>    resp = self.send(prep, **send_kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:655: in send<br/>    r = adapter.send(request, **kwargs)<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004B5C280&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>                resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/>    <br/>            # Send the request.<br/>            else:<br/>                if hasattr(conn, &#x27;proxy_pool&#x27;):<br/>                    conn = conn.proxy_pool<br/>    <br/>                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)<br/>    <br/>                try:<br/>                    low_conn.putrequest(request.method,<br/>                                        url,<br/>                                        skip_accept_encoding=True)<br/>    <br/>                    for header, value in request.headers.items():<br/>                        low_conn.putheader(header, value)<br/>    <br/>                    low_conn.endheaders()<br/>    <br/>                    for i in request.body:<br/>                        low_conn.send(hex(len(i))[2:].encode(&#x27;utf-8&#x27;))<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                        low_conn.send(i)<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                    low_conn.send(b&#x27;0\r\n\r\n&#x27;)<br/>    <br/>                    # Receive the response from the server<br/>                    try:<br/>                        # For Python 2.7, use buffering of HTTP responses<br/>                        r = low_conn.getresponse(buffering=True)<br/>                    except TypeError:<br/>                        # For compatibility with Python 3.3+<br/>                        r = low_conn.getresponse()<br/>    <br/>                    resp = HTTPResponse.from_httplib(<br/>                        r,<br/>                        pool=conn,<br/>                        connection=low_conn,<br/>                        preload_content=False,<br/>                        decode_content=False<br/>                    )<br/>                except:<br/>                    # If we hit any problems here, clean up the connection.<br/>                    # Then, reraise so that we can handle the actual exception.<br/>                    low_conn.close()<br/>                    raise<br/>    <br/>        except (ProtocolError, socket.error) as err:<br/>            raise ConnectionError(err, request=request)<br/>    <br/>        except MaxRetryError as e:<br/>            if isinstance(e.reason, ConnectTimeoutError):<br/>                # TODO: Remove this in 3.0.0: see #2811<br/>                if not isinstance(e.reason, NewConnectionError):<br/>                    raise ConnectTimeout(e, request=request)<br/>    <br/>            if isinstance(e.reason, ResponseError):<br/>                raise RetryError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _ProxyError):<br/>                raise ProxyError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _SSLError):<br/>                # This branch is for urllib3 v1.22 and later.<br/>                raise SSLError(e, request=request)<br/>    <br/>&gt;           raise ConnectionError(e, request=request)<br/><span class="error">E           requests.exceptions.ConnectionError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004B5CD90&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:516: ConnectionError<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/></div></td></tr></tbody>
      <tbody class="failed results-table-row">
        <tr>
          <td class="col-result">Failed</td>
          <td class="col-name">day02/test_register2.py::test_register[reg_data1]</td>
          <td class="col-duration">1.00</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div class="log">self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>&gt;           conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:169: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>                sock.connect(sa)<br/>                return sock<br/>    <br/>            except socket.error as e:<br/>                err = e<br/>                if sock is not None:<br/>                    sock.close()<br/>                    sock = None<br/>    <br/>        if err is not None:<br/>&gt;           raise err<br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:96: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>&gt;               sock.connect(sa)<br/><span class="error">E               ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:86: ConnectionRefusedError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004CDF1F0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>&gt;           httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:699: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004CDF1F0&gt;<br/>conn = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>timeout = Timeout(connect=None, read=None, total=None), chunked = False<br/>httplib_request_kw = {&#x27;body&#x27;: &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;, &#x27;headers&#x27;: {&#x27;User-Agent&#x27;: &#x27;python-requests/2....cept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}}<br/>timeout_obj = Timeout(connect=None, read=None, total=None)<br/><br/>    def _make_request(<br/>        self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Perform a request on a given urllib connection object taken from our<br/>        pool.<br/>    <br/>        :param conn:<br/>            a connection from one of our connection pools<br/>    <br/>        :param timeout:<br/>            Socket timeout in seconds for the request. This can be a<br/>            float or integer, which will set the same timeout value for<br/>            the socket connect and the socket read, or an instance of<br/>            :class:`urllib3.util.Timeout`, which gives you more fine-grained<br/>            control over your timeouts.<br/>        &quot;&quot;&quot;<br/>        self.num_requests += 1<br/>    <br/>        timeout_obj = self._get_timeout(timeout)<br/>        timeout_obj.start_connect()<br/>        conn.timeout = timeout_obj.connect_timeout<br/>    <br/>        # Trigger any extra validation we need to do.<br/>        try:<br/>            self._validate_conn(conn)<br/>        except (SocketTimeout, BaseSSLError) as e:<br/>            # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.<br/>            self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)<br/>            raise<br/>    <br/>        # conn.request() calls http.client.*.request, not the method in<br/>        # urllib3.request. It also calls makefile (recv) on the socket.<br/>        try:<br/>            if chunked:<br/>                conn.request_chunked(method, url, **httplib_request_kw)<br/>            else:<br/>&gt;               conn.request(method, url, **httplib_request_kw)<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:394: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers=None):<br/>        if headers is None:<br/>            headers = {}<br/>        else:<br/>            # Avoid modifying the headers passed into .request()<br/>            headers = headers.copy()<br/>        if &quot;user-agent&quot; not in (six.ensure_str(k.lower()) for k in headers):<br/>            headers[&quot;User-Agent&quot;] = _get_default_user_agent()<br/>&gt;       super(HTTPConnection, self).request(method, url, body=body, headers=headers)<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:234: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers={}, *,<br/>                encode_chunked=False):<br/>        &quot;&quot;&quot;Send a complete request to the server.&quot;&quot;&quot;<br/>&gt;       self._send_request(method, url, body, headers, encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1255: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>encode_chunked = False<br/><br/>    def _send_request(self, method, url, body, headers, encode_chunked):<br/>        # Honor explicitly requested Host: and Accept-Encoding: headers.<br/>        header_names = frozenset(k.lower() for k in headers)<br/>        skips = {}<br/>        if &#x27;host&#x27; in header_names:<br/>            skips[&#x27;skip_host&#x27;] = 1<br/>        if &#x27;accept-encoding&#x27; in header_names:<br/>            skips[&#x27;skip_accept_encoding&#x27;] = 1<br/>    <br/>        self.putrequest(method, url, **skips)<br/>    <br/>        # chunked encoding will happen if HTTP/1.1 is used and either<br/>        # the caller passes encode_chunked=True or the following<br/>        # conditions hold:<br/>        # 1. content-length has not been explicitly set<br/>        # 2. the body is a file or iterable, but not a str or bytes-like<br/>        # 3. Transfer-Encoding has NOT been explicitly set by the caller<br/>    <br/>        if &#x27;content-length&#x27; not in header_names:<br/>            # only chunk body if not explicitly set for backwards<br/>            # compatibility, assuming the client code is already handling the<br/>            # chunking<br/>            if &#x27;transfer-encoding&#x27; not in header_names:<br/>                # if content-length cannot be automatically determined, fall<br/>                # back to chunked encoding<br/>                encode_chunked = False<br/>                content_length = self._get_content_length(body, method)<br/>                if content_length is None:<br/>                    if body is not None:<br/>                        if self.debuglevel &gt; 0:<br/>                            print(&#x27;Unable to determine size of %r&#x27; % body)<br/>                        encode_chunked = True<br/>                        self.putheader(&#x27;Transfer-Encoding&#x27;, &#x27;chunked&#x27;)<br/>                else:<br/>                    self.putheader(&#x27;Content-Length&#x27;, str(content_length))<br/>        else:<br/>            encode_chunked = False<br/>    <br/>        for hdr, value in headers.items():<br/>            self.putheader(hdr, value)<br/>        if isinstance(body, str):<br/>            # RFC 2616 Section 3.7.1 says that text default has a<br/>            # default charset of iso-8859-1.<br/>            body = _encode(body, &#x27;body&#x27;)<br/>&gt;       self.endheaders(body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1301: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/>message_body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/><br/>    def endheaders(self, message_body=None, *, encode_chunked=False):<br/>        &quot;&quot;&quot;Indicate that the last header line has been sent to the server.<br/>    <br/>        This method sends the request to the server.  The optional message_body<br/>        argument can be used to pass a message body associated with the<br/>        request.<br/>        &quot;&quot;&quot;<br/>        if self.__state == _CS_REQ_STARTED:<br/>            self.__state = _CS_REQ_SENT<br/>        else:<br/>            raise CannotSendHeader()<br/>&gt;       self._send_output(message_body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1250: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/>message_body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>encode_chunked = False<br/><br/>    def _send_output(self, message_body=None, encode_chunked=False):<br/>        &quot;&quot;&quot;Send the currently buffered request and clear the buffer.<br/>    <br/>        Appends an extra \\r\\n to the buffer.<br/>        A message_body may be specified, to be appended to the request.<br/>        &quot;&quot;&quot;<br/>        self._buffer.extend((b&quot;&quot;, b&quot;&quot;))<br/>        msg = b&quot;\r\n&quot;.join(self._buffer)<br/>        del self._buffer[:]<br/>&gt;       self.send(msg)<br/><br/>C:\Python38\lib\http\client.py:1010: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/>data = b&#x27;POST /futureloan/mvc/api/member/register HTTP/1.1\r\nHost: 192.168.150.84:8088\r\nUser-Agent: python-requests/2.25.1...Accept: */*\r\nConnection: keep-alive\r\nContent-Length: 60\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n&#x27;<br/><br/>    def send(self, data):<br/>        &quot;&quot;&quot;Send `data&#x27; to the server.<br/>        ``data`` can be a string object, a bytes object, an array object, a<br/>        file-like object that supports a .read() method, or an iterable object.<br/>        &quot;&quot;&quot;<br/>    <br/>        if self.sock is None:<br/>            if self.auto_open:<br/>&gt;               self.connect()<br/><br/>C:\Python38\lib\http\client.py:950: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/><br/>    def connect(self):<br/>&gt;       conn = self._new_conn()<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:200: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>            conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/>    <br/>        except SocketTimeout:<br/>            raise ConnectTimeoutError(<br/>                self,<br/>                &quot;Connection to %s timed out. (connect timeout=%s)&quot;<br/>                % (self.host, self.timeout),<br/>            )<br/>    <br/>        except SocketError as e:<br/>&gt;           raise NewConnectionError(<br/>                self, &quot;Failed to establish a new connection: %s&quot; % e<br/>            )<br/><span class="error">E           urllib3.exceptions.NewConnectionError: &lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:181: NewConnectionError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004CDF550&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>&gt;               resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:439: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004CDF1F0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>            httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/>    <br/>            # If we&#x27;re going to release the connection in ``finally:``, then<br/>            # the response doesn&#x27;t need to know about the connection. Otherwise<br/>            # it will also try to release it and we&#x27;ll have a double-release<br/>            # mess.<br/>            response_conn = conn if not release_conn else None<br/>    <br/>            # Pass method to Response for length checking<br/>            response_kw[&quot;request_method&quot;] = method<br/>    <br/>            # Import httplib&#x27;s response into our own wrapper object<br/>            response = self.ResponseCls.from_httplib(<br/>                httplib_response,<br/>                pool=self,<br/>                connection=response_conn,<br/>                retries=retries,<br/>                **response_kw<br/>            )<br/>    <br/>            # Everything went great!<br/>            clean_exit = True<br/>    <br/>        except EmptyPoolError:<br/>            # Didn&#x27;t get a connection from the pool, no need to clean up<br/>            clean_exit = True<br/>            release_this_conn = False<br/>            raise<br/>    <br/>        except (<br/>            TimeoutError,<br/>            HTTPException,<br/>            SocketError,<br/>            ProtocolError,<br/>            BaseSSLError,<br/>            SSLError,<br/>            CertificateError,<br/>        ) as e:<br/>            # Discard the connection for these exceptions. It will be<br/>            # replaced during the next _get_conn() call.<br/>            clean_exit = False<br/>            if isinstance(e, (BaseSSLError, CertificateError)):<br/>                e = SSLError(e)<br/>            elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:<br/>                e = ProxyError(&quot;Cannot connect to proxy.&quot;, e)<br/>            elif isinstance(e, (SocketError, HTTPException)):<br/>                e = ProtocolError(&quot;Connection aborted.&quot;, e)<br/>    <br/>&gt;           retries = retries.increment(<br/>                method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:755: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;, response = None<br/>error = NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;)<br/>_pool = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004CDF1F0&gt;<br/>_stacktrace = &lt;traceback object at 0x0000000004AA04C0&gt;<br/><br/>    def increment(<br/>        self,<br/>        method=None,<br/>        url=None,<br/>        response=None,<br/>        error=None,<br/>        _pool=None,<br/>        _stacktrace=None,<br/>    ):<br/>        &quot;&quot;&quot;Return a new Retry object with incremented retry counters.<br/>    <br/>        :param response: A response object, or None, if the server did not<br/>            return a response.<br/>        :type response: :class:`~urllib3.response.HTTPResponse`<br/>        :param Exception error: An error encountered during the request, or<br/>            None if the response was received successfully.<br/>    <br/>        :return: A new ``Retry`` object.<br/>        &quot;&quot;&quot;<br/>        if self.total is False and error:<br/>            # Disabled, indicate to re-raise the error.<br/>            raise six.reraise(type(error), error, _stacktrace)<br/>    <br/>        total = self.total<br/>        if total is not None:<br/>            total -= 1<br/>    <br/>        connect = self.connect<br/>        read = self.read<br/>        redirect = self.redirect<br/>        status_count = self.status<br/>        other = self.other<br/>        cause = &quot;unknown&quot;<br/>        status = None<br/>        redirect_location = None<br/>    <br/>        if error and self._is_connection_error(error):<br/>            # Connect retry?<br/>            if connect is False:<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif connect is not None:<br/>                connect -= 1<br/>    <br/>        elif error and self._is_read_error(error):<br/>            # Read retry?<br/>            if read is False or not self._is_method_retryable(method):<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif read is not None:<br/>                read -= 1<br/>    <br/>        elif error:<br/>            # Other retry?<br/>            if other is not None:<br/>                other -= 1<br/>    <br/>        elif response and response.get_redirect_location():<br/>            # Redirect retry?<br/>            if redirect is not None:<br/>                redirect -= 1<br/>            cause = &quot;too many redirects&quot;<br/>            redirect_location = response.get_redirect_location()<br/>            status = response.status<br/>    <br/>        else:<br/>            # Incrementing because of a server error like a 500 in<br/>            # status_forcelist and the given method is in the allowed_methods<br/>            cause = ResponseError.GENERIC_ERROR<br/>            if response and response.status:<br/>                if status_count is not None:<br/>                    status_count -= 1<br/>                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)<br/>                status = response.status<br/>    <br/>        history = self.history + (<br/>            RequestHistory(method, url, error, status, redirect_location),<br/>        )<br/>    <br/>        new_retry = self.new(<br/>            total=total,<br/>            connect=connect,<br/>            read=read,<br/>            redirect=redirect,<br/>            status=status_count,<br/>            other=other,<br/>            history=history,<br/>        )<br/>    <br/>        if new_retry.is_exhausted():<br/>&gt;           raise MaxRetryError(_pool, url, error or ResponseError(cause))<br/><span class="error">E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\retry.py:574: MaxRetryError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>reg_data = [&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]<br/><br/>    def test_register(reg_data):<br/>        print(f&quot;测试数据为：{reg_data}&quot;)<br/>        url = &quot;http://192.168.150.84:8088/futureloan/mvc/api/member/register&quot;<br/>        cs = {<br/>            &quot;mobilephone&quot;:reg_data[0],<br/>            &quot;pwd&quot;:reg_data[1],<br/>            &quot;regname&quot;:reg_data[2]<br/>        }<br/>&gt;       r = requests.post(url,data=cs)<br/><br/>test_register2.py:18: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>C:\Python38\lib\site-packages\requests\api.py:119: in post<br/>    return request(&#x27;post&#x27;, url, data=data, json=json, **kwargs)<br/>C:\Python38\lib\site-packages\requests\api.py:61: in request<br/>    return session.request(method=method, url=url, **kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:542: in request<br/>    resp = self.send(prep, **send_kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:655: in send<br/>    r = adapter.send(request, **kwargs)<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004CDF550&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>                resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/>    <br/>            # Send the request.<br/>            else:<br/>                if hasattr(conn, &#x27;proxy_pool&#x27;):<br/>                    conn = conn.proxy_pool<br/>    <br/>                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)<br/>    <br/>                try:<br/>                    low_conn.putrequest(request.method,<br/>                                        url,<br/>                                        skip_accept_encoding=True)<br/>    <br/>                    for header, value in request.headers.items():<br/>                        low_conn.putheader(header, value)<br/>    <br/>                    low_conn.endheaders()<br/>    <br/>                    for i in request.body:<br/>                        low_conn.send(hex(len(i))[2:].encode(&#x27;utf-8&#x27;))<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                        low_conn.send(i)<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                    low_conn.send(b&#x27;0\r\n\r\n&#x27;)<br/>    <br/>                    # Receive the response from the server<br/>                    try:<br/>                        # For Python 2.7, use buffering of HTTP responses<br/>                        r = low_conn.getresponse(buffering=True)<br/>                    except TypeError:<br/>                        # For compatibility with Python 3.3+<br/>                        r = low_conn.getresponse()<br/>    <br/>                    resp = HTTPResponse.from_httplib(<br/>                        r,<br/>                        pool=conn,<br/>                        connection=low_conn,<br/>                        preload_content=False,<br/>                        decode_content=False<br/>                    )<br/>                except:<br/>                    # If we hit any problems here, clean up the connection.<br/>                    # Then, reraise so that we can handle the actual exception.<br/>                    low_conn.close()<br/>                    raise<br/>    <br/>        except (ProtocolError, socket.error) as err:<br/>            raise ConnectionError(err, request=request)<br/>    <br/>        except MaxRetryError as e:<br/>            if isinstance(e.reason, ConnectTimeoutError):<br/>                # TODO: Remove this in 3.0.0: see #2811<br/>                if not isinstance(e.reason, NewConnectionError):<br/>                    raise ConnectTimeout(e, request=request)<br/>    <br/>            if isinstance(e.reason, ResponseError):<br/>                raise RetryError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _ProxyError):<br/>                raise ProxyError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _SSLError):<br/>                # This branch is for urllib3 v1.22 and later.<br/>                raise SSLError(e, request=request)<br/>    <br/>&gt;           raise ConnectionError(e, request=request)<br/><span class="error">E           requests.exceptions.ConnectionError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004AB1B20&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:516: ConnectionError<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/></div></td></tr></tbody>
      <tbody class="rerun results-table-row">
        <tr>
          <td class="col-result">Rerun</td>
          <td class="col-name">day02/test_register2.py::test_register[reg_data0]</td>
          <td class="col-duration">1.00</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div class="log">self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>&gt;           conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:169: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>                sock.connect(sa)<br/>                return sock<br/>    <br/>            except socket.error as e:<br/>                err = e<br/>                if sock is not None:<br/>                    sock.close()<br/>                    sock = None<br/>    <br/>        if err is not None:<br/>&gt;           raise err<br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:96: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>&gt;               sock.connect(sa)<br/><span class="error">E               ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:86: ConnectionRefusedError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004775310&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>&gt;           httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:699: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004775310&gt;<br/>conn = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>timeout = Timeout(connect=None, read=None, total=None), chunked = False<br/>httplib_request_kw = {&#x27;body&#x27;: &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;, &#x27;headers&#x27;: {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Enc...cept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}}<br/>timeout_obj = Timeout(connect=None, read=None, total=None)<br/><br/>    def _make_request(<br/>        self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Perform a request on a given urllib connection object taken from our<br/>        pool.<br/>    <br/>        :param conn:<br/>            a connection from one of our connection pools<br/>    <br/>        :param timeout:<br/>            Socket timeout in seconds for the request. This can be a<br/>            float or integer, which will set the same timeout value for<br/>            the socket connect and the socket read, or an instance of<br/>            :class:`urllib3.util.Timeout`, which gives you more fine-grained<br/>            control over your timeouts.<br/>        &quot;&quot;&quot;<br/>        self.num_requests += 1<br/>    <br/>        timeout_obj = self._get_timeout(timeout)<br/>        timeout_obj.start_connect()<br/>        conn.timeout = timeout_obj.connect_timeout<br/>    <br/>        # Trigger any extra validation we need to do.<br/>        try:<br/>            self._validate_conn(conn)<br/>        except (SocketTimeout, BaseSSLError) as e:<br/>            # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.<br/>            self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)<br/>            raise<br/>    <br/>        # conn.request() calls http.client.*.request, not the method in<br/>        # urllib3.request. It also calls makefile (recv) on the socket.<br/>        try:<br/>            if chunked:<br/>                conn.request_chunked(method, url, **httplib_request_kw)<br/>            else:<br/>&gt;               conn.request(method, url, **httplib_request_kw)<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:394: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers=None):<br/>        if headers is None:<br/>            headers = {}<br/>        else:<br/>            # Avoid modifying the headers passed into .request()<br/>            headers = headers.copy()<br/>        if &quot;user-agent&quot; not in (six.ensure_str(k.lower()) for k in headers):<br/>            headers[&quot;User-Agent&quot;] = _get_default_user_agent()<br/>&gt;       super(HTTPConnection, self).request(method, url, body=body, headers=headers)<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:234: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers={}, *,<br/>                encode_chunked=False):<br/>        &quot;&quot;&quot;Send a complete request to the server.&quot;&quot;&quot;<br/>&gt;       self._send_request(method, url, body, headers, encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1255: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>encode_chunked = False<br/><br/>    def _send_request(self, method, url, body, headers, encode_chunked):<br/>        # Honor explicitly requested Host: and Accept-Encoding: headers.<br/>        header_names = frozenset(k.lower() for k in headers)<br/>        skips = {}<br/>        if &#x27;host&#x27; in header_names:<br/>            skips[&#x27;skip_host&#x27;] = 1<br/>        if &#x27;accept-encoding&#x27; in header_names:<br/>            skips[&#x27;skip_accept_encoding&#x27;] = 1<br/>    <br/>        self.putrequest(method, url, **skips)<br/>    <br/>        # chunked encoding will happen if HTTP/1.1 is used and either<br/>        # the caller passes encode_chunked=True or the following<br/>        # conditions hold:<br/>        # 1. content-length has not been explicitly set<br/>        # 2. the body is a file or iterable, but not a str or bytes-like<br/>        # 3. Transfer-Encoding has NOT been explicitly set by the caller<br/>    <br/>        if &#x27;content-length&#x27; not in header_names:<br/>            # only chunk body if not explicitly set for backwards<br/>            # compatibility, assuming the client code is already handling the<br/>            # chunking<br/>            if &#x27;transfer-encoding&#x27; not in header_names:<br/>                # if content-length cannot be automatically determined, fall<br/>                # back to chunked encoding<br/>                encode_chunked = False<br/>                content_length = self._get_content_length(body, method)<br/>                if content_length is None:<br/>                    if body is not None:<br/>                        if self.debuglevel &gt; 0:<br/>                            print(&#x27;Unable to determine size of %r&#x27; % body)<br/>                        encode_chunked = True<br/>                        self.putheader(&#x27;Transfer-Encoding&#x27;, &#x27;chunked&#x27;)<br/>                else:<br/>                    self.putheader(&#x27;Content-Length&#x27;, str(content_length))<br/>        else:<br/>            encode_chunked = False<br/>    <br/>        for hdr, value in headers.items():<br/>            self.putheader(hdr, value)<br/>        if isinstance(body, str):<br/>            # RFC 2616 Section 3.7.1 says that text default has a<br/>            # default charset of iso-8859-1.<br/>            body = _encode(body, &#x27;body&#x27;)<br/>&gt;       self.endheaders(body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1301: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/>message_body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/><br/>    def endheaders(self, message_body=None, *, encode_chunked=False):<br/>        &quot;&quot;&quot;Indicate that the last header line has been sent to the server.<br/>    <br/>        This method sends the request to the server.  The optional message_body<br/>        argument can be used to pass a message body associated with the<br/>        request.<br/>        &quot;&quot;&quot;<br/>        if self.__state == _CS_REQ_STARTED:<br/>            self.__state = _CS_REQ_SENT<br/>        else:<br/>            raise CannotSendHeader()<br/>&gt;       self._send_output(message_body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1250: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/>message_body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>encode_chunked = False<br/><br/>    def _send_output(self, message_body=None, encode_chunked=False):<br/>        &quot;&quot;&quot;Send the currently buffered request and clear the buffer.<br/>    <br/>        Appends an extra \\r\\n to the buffer.<br/>        A message_body may be specified, to be appended to the request.<br/>        &quot;&quot;&quot;<br/>        self._buffer.extend((b&quot;&quot;, b&quot;&quot;))<br/>        msg = b&quot;\r\n&quot;.join(self._buffer)<br/>        del self._buffer[:]<br/>&gt;       self.send(msg)<br/><br/>C:\Python38\lib\http\client.py:1010: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/>data = b&#x27;POST /futureloan/mvc/api/member/register HTTP/1.1\r\nHost: 192.168.150.84:8088\r\nUser-Agent: python-requests/2.25.1...Accept: */*\r\nConnection: keep-alive\r\nContent-Length: 42\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n&#x27;<br/><br/>    def send(self, data):<br/>        &quot;&quot;&quot;Send `data&#x27; to the server.<br/>        ``data`` can be a string object, a bytes object, an array object, a<br/>        file-like object that supports a .read() method, or an iterable object.<br/>        &quot;&quot;&quot;<br/>    <br/>        if self.sock is None:<br/>            if self.auto_open:<br/>&gt;               self.connect()<br/><br/>C:\Python38\lib\http\client.py:950: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/><br/>    def connect(self):<br/>&gt;       conn = self._new_conn()<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:200: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>            conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/>    <br/>        except SocketTimeout:<br/>            raise ConnectTimeoutError(<br/>                self,<br/>                &quot;Connection to %s timed out. (connect timeout=%s)&quot;<br/>                % (self.host, self.timeout),<br/>            )<br/>    <br/>        except SocketError as e:<br/>&gt;           raise NewConnectionError(<br/>                self, &quot;Failed to establish a new connection: %s&quot; % e<br/>            )<br/><span class="error">E           urllib3.exceptions.NewConnectionError: &lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:181: NewConnectionError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004775040&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>&gt;               resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:439: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004775310&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>            httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/>    <br/>            # If we&#x27;re going to release the connection in ``finally:``, then<br/>            # the response doesn&#x27;t need to know about the connection. Otherwise<br/>            # it will also try to release it and we&#x27;ll have a double-release<br/>            # mess.<br/>            response_conn = conn if not release_conn else None<br/>    <br/>            # Pass method to Response for length checking<br/>            response_kw[&quot;request_method&quot;] = method<br/>    <br/>            # Import httplib&#x27;s response into our own wrapper object<br/>            response = self.ResponseCls.from_httplib(<br/>                httplib_response,<br/>                pool=self,<br/>                connection=response_conn,<br/>                retries=retries,<br/>                **response_kw<br/>            )<br/>    <br/>            # Everything went great!<br/>            clean_exit = True<br/>    <br/>        except EmptyPoolError:<br/>            # Didn&#x27;t get a connection from the pool, no need to clean up<br/>            clean_exit = True<br/>            release_this_conn = False<br/>            raise<br/>    <br/>        except (<br/>            TimeoutError,<br/>            HTTPException,<br/>            SocketError,<br/>            ProtocolError,<br/>            BaseSSLError,<br/>            SSLError,<br/>            CertificateError,<br/>        ) as e:<br/>            # Discard the connection for these exceptions. It will be<br/>            # replaced during the next _get_conn() call.<br/>            clean_exit = False<br/>            if isinstance(e, (BaseSSLError, CertificateError)):<br/>                e = SSLError(e)<br/>            elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:<br/>                e = ProxyError(&quot;Cannot connect to proxy.&quot;, e)<br/>            elif isinstance(e, (SocketError, HTTPException)):<br/>                e = ProtocolError(&quot;Connection aborted.&quot;, e)<br/>    <br/>&gt;           retries = retries.increment(<br/>                method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:755: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;, response = None<br/>error = NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;)<br/>_pool = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004775310&gt;<br/>_stacktrace = &lt;traceback object at 0x000000000478E800&gt;<br/><br/>    def increment(<br/>        self,<br/>        method=None,<br/>        url=None,<br/>        response=None,<br/>        error=None,<br/>        _pool=None,<br/>        _stacktrace=None,<br/>    ):<br/>        &quot;&quot;&quot;Return a new Retry object with incremented retry counters.<br/>    <br/>        :param response: A response object, or None, if the server did not<br/>            return a response.<br/>        :type response: :class:`~urllib3.response.HTTPResponse`<br/>        :param Exception error: An error encountered during the request, or<br/>            None if the response was received successfully.<br/>    <br/>        :return: A new ``Retry`` object.<br/>        &quot;&quot;&quot;<br/>        if self.total is False and error:<br/>            # Disabled, indicate to re-raise the error.<br/>            raise six.reraise(type(error), error, _stacktrace)<br/>    <br/>        total = self.total<br/>        if total is not None:<br/>            total -= 1<br/>    <br/>        connect = self.connect<br/>        read = self.read<br/>        redirect = self.redirect<br/>        status_count = self.status<br/>        other = self.other<br/>        cause = &quot;unknown&quot;<br/>        status = None<br/>        redirect_location = None<br/>    <br/>        if error and self._is_connection_error(error):<br/>            # Connect retry?<br/>            if connect is False:<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif connect is not None:<br/>                connect -= 1<br/>    <br/>        elif error and self._is_read_error(error):<br/>            # Read retry?<br/>            if read is False or not self._is_method_retryable(method):<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif read is not None:<br/>                read -= 1<br/>    <br/>        elif error:<br/>            # Other retry?<br/>            if other is not None:<br/>                other -= 1<br/>    <br/>        elif response and response.get_redirect_location():<br/>            # Redirect retry?<br/>            if redirect is not None:<br/>                redirect -= 1<br/>            cause = &quot;too many redirects&quot;<br/>            redirect_location = response.get_redirect_location()<br/>            status = response.status<br/>    <br/>        else:<br/>            # Incrementing because of a server error like a 500 in<br/>            # status_forcelist and the given method is in the allowed_methods<br/>            cause = ResponseError.GENERIC_ERROR<br/>            if response and response.status:<br/>                if status_count is not None:<br/>                    status_count -= 1<br/>                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)<br/>                status = response.status<br/>    <br/>        history = self.history + (<br/>            RequestHistory(method, url, error, status, redirect_location),<br/>        )<br/>    <br/>        new_retry = self.new(<br/>            total=total,<br/>            connect=connect,<br/>            read=read,<br/>            redirect=redirect,<br/>            status=status_count,<br/>            other=other,<br/>            history=history,<br/>        )<br/>    <br/>        if new_retry.is_exhausted():<br/>&gt;           raise MaxRetryError(_pool, url, error or ResponseError(cause))<br/><span class="error">E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\retry.py:574: MaxRetryError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>reg_data = [&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]<br/><br/>    def test_register(reg_data):<br/>        print(f&quot;测试数据为：{reg_data}&quot;)<br/>        url = &quot;http://192.168.150.84:8088/futureloan/mvc/api/member/register&quot;<br/>        cs = {<br/>            &quot;mobilephone&quot;:reg_data[0],<br/>            &quot;pwd&quot;:reg_data[1],<br/>            &quot;regname&quot;:reg_data[2]<br/>        }<br/>&gt;       r = requests.post(url,data=cs)<br/><br/>test_register2.py:18: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>C:\Python38\lib\site-packages\requests\api.py:119: in post<br/>    return request(&#x27;post&#x27;, url, data=data, json=json, **kwargs)<br/>C:\Python38\lib\site-packages\requests\api.py:61: in request<br/>    return session.request(method=method, url=url, **kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:542: in request<br/>    resp = self.send(prep, **send_kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:655: in send<br/>    r = adapter.send(request, **kwargs)<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004775040&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>                resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/>    <br/>            # Send the request.<br/>            else:<br/>                if hasattr(conn, &#x27;proxy_pool&#x27;):<br/>                    conn = conn.proxy_pool<br/>    <br/>                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)<br/>    <br/>                try:<br/>                    low_conn.putrequest(request.method,<br/>                                        url,<br/>                                        skip_accept_encoding=True)<br/>    <br/>                    for header, value in request.headers.items():<br/>                        low_conn.putheader(header, value)<br/>    <br/>                    low_conn.endheaders()<br/>    <br/>                    for i in request.body:<br/>                        low_conn.send(hex(len(i))[2:].encode(&#x27;utf-8&#x27;))<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                        low_conn.send(i)<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                    low_conn.send(b&#x27;0\r\n\r\n&#x27;)<br/>    <br/>                    # Receive the response from the server<br/>                    try:<br/>                        # For Python 2.7, use buffering of HTTP responses<br/>                        r = low_conn.getresponse(buffering=True)<br/>                    except TypeError:<br/>                        # For compatibility with Python 3.3+<br/>                        r = low_conn.getresponse()<br/>    <br/>                    resp = HTTPResponse.from_httplib(<br/>                        r,<br/>                        pool=conn,<br/>                        connection=low_conn,<br/>                        preload_content=False,<br/>                        decode_content=False<br/>                    )<br/>                except:<br/>                    # If we hit any problems here, clean up the connection.<br/>                    # Then, reraise so that we can handle the actual exception.<br/>                    low_conn.close()<br/>                    raise<br/>    <br/>        except (ProtocolError, socket.error) as err:<br/>            raise ConnectionError(err, request=request)<br/>    <br/>        except MaxRetryError as e:<br/>            if isinstance(e.reason, ConnectTimeoutError):<br/>                # TODO: Remove this in 3.0.0: see #2811<br/>                if not isinstance(e.reason, NewConnectionError):<br/>                    raise ConnectTimeout(e, request=request)<br/>    <br/>            if isinstance(e.reason, ResponseError):<br/>                raise RetryError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _ProxyError):<br/>                raise ProxyError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _SSLError):<br/>                # This branch is for urllib3 v1.22 and later.<br/>                raise SSLError(e, request=request)<br/>    <br/>&gt;           raise ConnectionError(e, request=request)<br/><span class="error">E           requests.exceptions.ConnectionError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004775B50&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:516: ConnectionError<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/></div></td></tr></tbody>
      <tbody class="rerun results-table-row">
        <tr>
          <td class="col-result">Rerun</td>
          <td class="col-name">day02/test_register2.py::test_register[reg_data0]</td>
          <td class="col-duration">0.99</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div class="log">self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>&gt;           conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:169: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>                sock.connect(sa)<br/>                return sock<br/>    <br/>            except socket.error as e:<br/>                err = e<br/>                if sock is not None:<br/>                    sock.close()<br/>                    sock = None<br/>    <br/>        if err is not None:<br/>&gt;           raise err<br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:96: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>&gt;               sock.connect(sa)<br/><span class="error">E               ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:86: ConnectionRefusedError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004C82BE0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>&gt;           httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:699: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004C82BE0&gt;<br/>conn = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>timeout = Timeout(connect=None, read=None, total=None), chunked = False<br/>httplib_request_kw = {&#x27;body&#x27;: &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;, &#x27;headers&#x27;: {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Enc...cept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}}<br/>timeout_obj = Timeout(connect=None, read=None, total=None)<br/><br/>    def _make_request(<br/>        self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Perform a request on a given urllib connection object taken from our<br/>        pool.<br/>    <br/>        :param conn:<br/>            a connection from one of our connection pools<br/>    <br/>        :param timeout:<br/>            Socket timeout in seconds for the request. This can be a<br/>            float or integer, which will set the same timeout value for<br/>            the socket connect and the socket read, or an instance of<br/>            :class:`urllib3.util.Timeout`, which gives you more fine-grained<br/>            control over your timeouts.<br/>        &quot;&quot;&quot;<br/>        self.num_requests += 1<br/>    <br/>        timeout_obj = self._get_timeout(timeout)<br/>        timeout_obj.start_connect()<br/>        conn.timeout = timeout_obj.connect_timeout<br/>    <br/>        # Trigger any extra validation we need to do.<br/>        try:<br/>            self._validate_conn(conn)<br/>        except (SocketTimeout, BaseSSLError) as e:<br/>            # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.<br/>            self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)<br/>            raise<br/>    <br/>        # conn.request() calls http.client.*.request, not the method in<br/>        # urllib3.request. It also calls makefile (recv) on the socket.<br/>        try:<br/>            if chunked:<br/>                conn.request_chunked(method, url, **httplib_request_kw)<br/>            else:<br/>&gt;               conn.request(method, url, **httplib_request_kw)<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:394: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers=None):<br/>        if headers is None:<br/>            headers = {}<br/>        else:<br/>            # Avoid modifying the headers passed into .request()<br/>            headers = headers.copy()<br/>        if &quot;user-agent&quot; not in (six.ensure_str(k.lower()) for k in headers):<br/>            headers[&quot;User-Agent&quot;] = _get_default_user_agent()<br/>&gt;       super(HTTPConnection, self).request(method, url, body=body, headers=headers)<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:234: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers={}, *,<br/>                encode_chunked=False):<br/>        &quot;&quot;&quot;Send a complete request to the server.&quot;&quot;&quot;<br/>&gt;       self._send_request(method, url, body, headers, encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1255: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>encode_chunked = False<br/><br/>    def _send_request(self, method, url, body, headers, encode_chunked):<br/>        # Honor explicitly requested Host: and Accept-Encoding: headers.<br/>        header_names = frozenset(k.lower() for k in headers)<br/>        skips = {}<br/>        if &#x27;host&#x27; in header_names:<br/>            skips[&#x27;skip_host&#x27;] = 1<br/>        if &#x27;accept-encoding&#x27; in header_names:<br/>            skips[&#x27;skip_accept_encoding&#x27;] = 1<br/>    <br/>        self.putrequest(method, url, **skips)<br/>    <br/>        # chunked encoding will happen if HTTP/1.1 is used and either<br/>        # the caller passes encode_chunked=True or the following<br/>        # conditions hold:<br/>        # 1. content-length has not been explicitly set<br/>        # 2. the body is a file or iterable, but not a str or bytes-like<br/>        # 3. Transfer-Encoding has NOT been explicitly set by the caller<br/>    <br/>        if &#x27;content-length&#x27; not in header_names:<br/>            # only chunk body if not explicitly set for backwards<br/>            # compatibility, assuming the client code is already handling the<br/>            # chunking<br/>            if &#x27;transfer-encoding&#x27; not in header_names:<br/>                # if content-length cannot be automatically determined, fall<br/>                # back to chunked encoding<br/>                encode_chunked = False<br/>                content_length = self._get_content_length(body, method)<br/>                if content_length is None:<br/>                    if body is not None:<br/>                        if self.debuglevel &gt; 0:<br/>                            print(&#x27;Unable to determine size of %r&#x27; % body)<br/>                        encode_chunked = True<br/>                        self.putheader(&#x27;Transfer-Encoding&#x27;, &#x27;chunked&#x27;)<br/>                else:<br/>                    self.putheader(&#x27;Content-Length&#x27;, str(content_length))<br/>        else:<br/>            encode_chunked = False<br/>    <br/>        for hdr, value in headers.items():<br/>            self.putheader(hdr, value)<br/>        if isinstance(body, str):<br/>            # RFC 2616 Section 3.7.1 says that text default has a<br/>            # default charset of iso-8859-1.<br/>            body = _encode(body, &#x27;body&#x27;)<br/>&gt;       self.endheaders(body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1301: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/>message_body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/><br/>    def endheaders(self, message_body=None, *, encode_chunked=False):<br/>        &quot;&quot;&quot;Indicate that the last header line has been sent to the server.<br/>    <br/>        This method sends the request to the server.  The optional message_body<br/>        argument can be used to pass a message body associated with the<br/>        request.<br/>        &quot;&quot;&quot;<br/>        if self.__state == _CS_REQ_STARTED:<br/>            self.__state = _CS_REQ_SENT<br/>        else:<br/>            raise CannotSendHeader()<br/>&gt;       self._send_output(message_body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1250: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/>message_body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>encode_chunked = False<br/><br/>    def _send_output(self, message_body=None, encode_chunked=False):<br/>        &quot;&quot;&quot;Send the currently buffered request and clear the buffer.<br/>    <br/>        Appends an extra \\r\\n to the buffer.<br/>        A message_body may be specified, to be appended to the request.<br/>        &quot;&quot;&quot;<br/>        self._buffer.extend((b&quot;&quot;, b&quot;&quot;))<br/>        msg = b&quot;\r\n&quot;.join(self._buffer)<br/>        del self._buffer[:]<br/>&gt;       self.send(msg)<br/><br/>C:\Python38\lib\http\client.py:1010: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/>data = b&#x27;POST /futureloan/mvc/api/member/register HTTP/1.1\r\nHost: 192.168.150.84:8088\r\nUser-Agent: python-requests/2.25.1...Accept: */*\r\nConnection: keep-alive\r\nContent-Length: 42\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n&#x27;<br/><br/>    def send(self, data):<br/>        &quot;&quot;&quot;Send `data&#x27; to the server.<br/>        ``data`` can be a string object, a bytes object, an array object, a<br/>        file-like object that supports a .read() method, or an iterable object.<br/>        &quot;&quot;&quot;<br/>    <br/>        if self.sock is None:<br/>            if self.auto_open:<br/>&gt;               self.connect()<br/><br/>C:\Python38\lib\http\client.py:950: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/><br/>    def connect(self):<br/>&gt;       conn = self._new_conn()<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:200: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>            conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/>    <br/>        except SocketTimeout:<br/>            raise ConnectTimeoutError(<br/>                self,<br/>                &quot;Connection to %s timed out. (connect timeout=%s)&quot;<br/>                % (self.host, self.timeout),<br/>            )<br/>    <br/>        except SocketError as e:<br/>&gt;           raise NewConnectionError(<br/>                self, &quot;Failed to establish a new connection: %s&quot; % e<br/>            )<br/><span class="error">E           urllib3.exceptions.NewConnectionError: &lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:181: NewConnectionError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004C825E0&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>&gt;               resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:439: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004C82BE0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>            httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/>    <br/>            # If we&#x27;re going to release the connection in ``finally:``, then<br/>            # the response doesn&#x27;t need to know about the connection. Otherwise<br/>            # it will also try to release it and we&#x27;ll have a double-release<br/>            # mess.<br/>            response_conn = conn if not release_conn else None<br/>    <br/>            # Pass method to Response for length checking<br/>            response_kw[&quot;request_method&quot;] = method<br/>    <br/>            # Import httplib&#x27;s response into our own wrapper object<br/>            response = self.ResponseCls.from_httplib(<br/>                httplib_response,<br/>                pool=self,<br/>                connection=response_conn,<br/>                retries=retries,<br/>                **response_kw<br/>            )<br/>    <br/>            # Everything went great!<br/>            clean_exit = True<br/>    <br/>        except EmptyPoolError:<br/>            # Didn&#x27;t get a connection from the pool, no need to clean up<br/>            clean_exit = True<br/>            release_this_conn = False<br/>            raise<br/>    <br/>        except (<br/>            TimeoutError,<br/>            HTTPException,<br/>            SocketError,<br/>            ProtocolError,<br/>            BaseSSLError,<br/>            SSLError,<br/>            CertificateError,<br/>        ) as e:<br/>            # Discard the connection for these exceptions. It will be<br/>            # replaced during the next _get_conn() call.<br/>            clean_exit = False<br/>            if isinstance(e, (BaseSSLError, CertificateError)):<br/>                e = SSLError(e)<br/>            elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:<br/>                e = ProxyError(&quot;Cannot connect to proxy.&quot;, e)<br/>            elif isinstance(e, (SocketError, HTTPException)):<br/>                e = ProtocolError(&quot;Connection aborted.&quot;, e)<br/>    <br/>&gt;           retries = retries.increment(<br/>                method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:755: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;, response = None<br/>error = NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;)<br/>_pool = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004C82BE0&gt;<br/>_stacktrace = &lt;traceback object at 0x0000000004AD5CC0&gt;<br/><br/>    def increment(<br/>        self,<br/>        method=None,<br/>        url=None,<br/>        response=None,<br/>        error=None,<br/>        _pool=None,<br/>        _stacktrace=None,<br/>    ):<br/>        &quot;&quot;&quot;Return a new Retry object with incremented retry counters.<br/>    <br/>        :param response: A response object, or None, if the server did not<br/>            return a response.<br/>        :type response: :class:`~urllib3.response.HTTPResponse`<br/>        :param Exception error: An error encountered during the request, or<br/>            None if the response was received successfully.<br/>    <br/>        :return: A new ``Retry`` object.<br/>        &quot;&quot;&quot;<br/>        if self.total is False and error:<br/>            # Disabled, indicate to re-raise the error.<br/>            raise six.reraise(type(error), error, _stacktrace)<br/>    <br/>        total = self.total<br/>        if total is not None:<br/>            total -= 1<br/>    <br/>        connect = self.connect<br/>        read = self.read<br/>        redirect = self.redirect<br/>        status_count = self.status<br/>        other = self.other<br/>        cause = &quot;unknown&quot;<br/>        status = None<br/>        redirect_location = None<br/>    <br/>        if error and self._is_connection_error(error):<br/>            # Connect retry?<br/>            if connect is False:<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif connect is not None:<br/>                connect -= 1<br/>    <br/>        elif error and self._is_read_error(error):<br/>            # Read retry?<br/>            if read is False or not self._is_method_retryable(method):<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif read is not None:<br/>                read -= 1<br/>    <br/>        elif error:<br/>            # Other retry?<br/>            if other is not None:<br/>                other -= 1<br/>    <br/>        elif response and response.get_redirect_location():<br/>            # Redirect retry?<br/>            if redirect is not None:<br/>                redirect -= 1<br/>            cause = &quot;too many redirects&quot;<br/>            redirect_location = response.get_redirect_location()<br/>            status = response.status<br/>    <br/>        else:<br/>            # Incrementing because of a server error like a 500 in<br/>            # status_forcelist and the given method is in the allowed_methods<br/>            cause = ResponseError.GENERIC_ERROR<br/>            if response and response.status:<br/>                if status_count is not None:<br/>                    status_count -= 1<br/>                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)<br/>                status = response.status<br/>    <br/>        history = self.history + (<br/>            RequestHistory(method, url, error, status, redirect_location),<br/>        )<br/>    <br/>        new_retry = self.new(<br/>            total=total,<br/>            connect=connect,<br/>            read=read,<br/>            redirect=redirect,<br/>            status=status_count,<br/>            other=other,<br/>            history=history,<br/>        )<br/>    <br/>        if new_retry.is_exhausted():<br/>&gt;           raise MaxRetryError(_pool, url, error or ResponseError(cause))<br/><span class="error">E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\retry.py:574: MaxRetryError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>reg_data = [&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]<br/><br/>    def test_register(reg_data):<br/>        print(f&quot;测试数据为：{reg_data}&quot;)<br/>        url = &quot;http://192.168.150.84:8088/futureloan/mvc/api/member/register&quot;<br/>        cs = {<br/>            &quot;mobilephone&quot;:reg_data[0],<br/>            &quot;pwd&quot;:reg_data[1],<br/>            &quot;regname&quot;:reg_data[2]<br/>        }<br/>&gt;       r = requests.post(url,data=cs)<br/><br/>test_register2.py:18: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>C:\Python38\lib\site-packages\requests\api.py:119: in post<br/>    return request(&#x27;post&#x27;, url, data=data, json=json, **kwargs)<br/>C:\Python38\lib\site-packages\requests\api.py:61: in request<br/>    return session.request(method=method, url=url, **kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:542: in request<br/>    resp = self.send(prep, **send_kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:655: in send<br/>    r = adapter.send(request, **kwargs)<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004C825E0&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>                resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/>    <br/>            # Send the request.<br/>            else:<br/>                if hasattr(conn, &#x27;proxy_pool&#x27;):<br/>                    conn = conn.proxy_pool<br/>    <br/>                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)<br/>    <br/>                try:<br/>                    low_conn.putrequest(request.method,<br/>                                        url,<br/>                                        skip_accept_encoding=True)<br/>    <br/>                    for header, value in request.headers.items():<br/>                        low_conn.putheader(header, value)<br/>    <br/>                    low_conn.endheaders()<br/>    <br/>                    for i in request.body:<br/>                        low_conn.send(hex(len(i))[2:].encode(&#x27;utf-8&#x27;))<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                        low_conn.send(i)<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                    low_conn.send(b&#x27;0\r\n\r\n&#x27;)<br/>    <br/>                    # Receive the response from the server<br/>                    try:<br/>                        # For Python 2.7, use buffering of HTTP responses<br/>                        r = low_conn.getresponse(buffering=True)<br/>                    except TypeError:<br/>                        # For compatibility with Python 3.3+<br/>                        r = low_conn.getresponse()<br/>    <br/>                    resp = HTTPResponse.from_httplib(<br/>                        r,<br/>                        pool=conn,<br/>                        connection=low_conn,<br/>                        preload_content=False,<br/>                        decode_content=False<br/>                    )<br/>                except:<br/>                    # If we hit any problems here, clean up the connection.<br/>                    # Then, reraise so that we can handle the actual exception.<br/>                    low_conn.close()<br/>                    raise<br/>    <br/>        except (ProtocolError, socket.error) as err:<br/>            raise ConnectionError(err, request=request)<br/>    <br/>        except MaxRetryError as e:<br/>            if isinstance(e.reason, ConnectTimeoutError):<br/>                # TODO: Remove this in 3.0.0: see #2811<br/>                if not isinstance(e.reason, NewConnectionError):<br/>                    raise ConnectTimeout(e, request=request)<br/>    <br/>            if isinstance(e.reason, ResponseError):<br/>                raise RetryError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _ProxyError):<br/>                raise ProxyError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _SSLError):<br/>                # This branch is for urllib3 v1.22 and later.<br/>                raise SSLError(e, request=request)<br/>    <br/>&gt;           raise ConnectionError(e, request=request)<br/><span class="error">E           requests.exceptions.ConnectionError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004C82B50&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:516: ConnectionError<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/></div></td></tr></tbody>
      <tbody class="rerun results-table-row">
        <tr>
          <td class="col-result">Rerun</td>
          <td class="col-name">day02/test_register2.py::test_register[reg_data0]</td>
          <td class="col-duration">1.02</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div class="log">self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>&gt;           conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:169: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>                sock.connect(sa)<br/>                return sock<br/>    <br/>            except socket.error as e:<br/>                err = e<br/>                if sock is not None:<br/>                    sock.close()<br/>                    sock = None<br/>    <br/>        if err is not None:<br/>&gt;           raise err<br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:96: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>&gt;               sock.connect(sa)<br/><span class="error">E               ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:86: ConnectionRefusedError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004903A90&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>&gt;           httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:699: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004903A90&gt;<br/>conn = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>timeout = Timeout(connect=None, read=None, total=None), chunked = False<br/>httplib_request_kw = {&#x27;body&#x27;: &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;, &#x27;headers&#x27;: {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Enc...cept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}}<br/>timeout_obj = Timeout(connect=None, read=None, total=None)<br/><br/>    def _make_request(<br/>        self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Perform a request on a given urllib connection object taken from our<br/>        pool.<br/>    <br/>        :param conn:<br/>            a connection from one of our connection pools<br/>    <br/>        :param timeout:<br/>            Socket timeout in seconds for the request. This can be a<br/>            float or integer, which will set the same timeout value for<br/>            the socket connect and the socket read, or an instance of<br/>            :class:`urllib3.util.Timeout`, which gives you more fine-grained<br/>            control over your timeouts.<br/>        &quot;&quot;&quot;<br/>        self.num_requests += 1<br/>    <br/>        timeout_obj = self._get_timeout(timeout)<br/>        timeout_obj.start_connect()<br/>        conn.timeout = timeout_obj.connect_timeout<br/>    <br/>        # Trigger any extra validation we need to do.<br/>        try:<br/>            self._validate_conn(conn)<br/>        except (SocketTimeout, BaseSSLError) as e:<br/>            # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.<br/>            self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)<br/>            raise<br/>    <br/>        # conn.request() calls http.client.*.request, not the method in<br/>        # urllib3.request. It also calls makefile (recv) on the socket.<br/>        try:<br/>            if chunked:<br/>                conn.request_chunked(method, url, **httplib_request_kw)<br/>            else:<br/>&gt;               conn.request(method, url, **httplib_request_kw)<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:394: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers=None):<br/>        if headers is None:<br/>            headers = {}<br/>        else:<br/>            # Avoid modifying the headers passed into .request()<br/>            headers = headers.copy()<br/>        if &quot;user-agent&quot; not in (six.ensure_str(k.lower()) for k in headers):<br/>            headers[&quot;User-Agent&quot;] = _get_default_user_agent()<br/>&gt;       super(HTTPConnection, self).request(method, url, body=body, headers=headers)<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:234: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers={}, *,<br/>                encode_chunked=False):<br/>        &quot;&quot;&quot;Send a complete request to the server.&quot;&quot;&quot;<br/>&gt;       self._send_request(method, url, body, headers, encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1255: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>encode_chunked = False<br/><br/>    def _send_request(self, method, url, body, headers, encode_chunked):<br/>        # Honor explicitly requested Host: and Accept-Encoding: headers.<br/>        header_names = frozenset(k.lower() for k in headers)<br/>        skips = {}<br/>        if &#x27;host&#x27; in header_names:<br/>            skips[&#x27;skip_host&#x27;] = 1<br/>        if &#x27;accept-encoding&#x27; in header_names:<br/>            skips[&#x27;skip_accept_encoding&#x27;] = 1<br/>    <br/>        self.putrequest(method, url, **skips)<br/>    <br/>        # chunked encoding will happen if HTTP/1.1 is used and either<br/>        # the caller passes encode_chunked=True or the following<br/>        # conditions hold:<br/>        # 1. content-length has not been explicitly set<br/>        # 2. the body is a file or iterable, but not a str or bytes-like<br/>        # 3. Transfer-Encoding has NOT been explicitly set by the caller<br/>    <br/>        if &#x27;content-length&#x27; not in header_names:<br/>            # only chunk body if not explicitly set for backwards<br/>            # compatibility, assuming the client code is already handling the<br/>            # chunking<br/>            if &#x27;transfer-encoding&#x27; not in header_names:<br/>                # if content-length cannot be automatically determined, fall<br/>                # back to chunked encoding<br/>                encode_chunked = False<br/>                content_length = self._get_content_length(body, method)<br/>                if content_length is None:<br/>                    if body is not None:<br/>                        if self.debuglevel &gt; 0:<br/>                            print(&#x27;Unable to determine size of %r&#x27; % body)<br/>                        encode_chunked = True<br/>                        self.putheader(&#x27;Transfer-Encoding&#x27;, &#x27;chunked&#x27;)<br/>                else:<br/>                    self.putheader(&#x27;Content-Length&#x27;, str(content_length))<br/>        else:<br/>            encode_chunked = False<br/>    <br/>        for hdr, value in headers.items():<br/>            self.putheader(hdr, value)<br/>        if isinstance(body, str):<br/>            # RFC 2616 Section 3.7.1 says that text default has a<br/>            # default charset of iso-8859-1.<br/>            body = _encode(body, &#x27;body&#x27;)<br/>&gt;       self.endheaders(body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1301: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/>message_body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/><br/>    def endheaders(self, message_body=None, *, encode_chunked=False):<br/>        &quot;&quot;&quot;Indicate that the last header line has been sent to the server.<br/>    <br/>        This method sends the request to the server.  The optional message_body<br/>        argument can be used to pass a message body associated with the<br/>        request.<br/>        &quot;&quot;&quot;<br/>        if self.__state == _CS_REQ_STARTED:<br/>            self.__state = _CS_REQ_SENT<br/>        else:<br/>            raise CannotSendHeader()<br/>&gt;       self._send_output(message_body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1250: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/>message_body = b&#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>encode_chunked = False<br/><br/>    def _send_output(self, message_body=None, encode_chunked=False):<br/>        &quot;&quot;&quot;Send the currently buffered request and clear the buffer.<br/>    <br/>        Appends an extra \\r\\n to the buffer.<br/>        A message_body may be specified, to be appended to the request.<br/>        &quot;&quot;&quot;<br/>        self._buffer.extend((b&quot;&quot;, b&quot;&quot;))<br/>        msg = b&quot;\r\n&quot;.join(self._buffer)<br/>        del self._buffer[:]<br/>&gt;       self.send(msg)<br/><br/>C:\Python38\lib\http\client.py:1010: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/>data = b&#x27;POST /futureloan/mvc/api/member/register HTTP/1.1\r\nHost: 192.168.150.84:8088\r\nUser-Agent: python-requests/2.25.1...Accept: */*\r\nConnection: keep-alive\r\nContent-Length: 42\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n&#x27;<br/><br/>    def send(self, data):<br/>        &quot;&quot;&quot;Send `data&#x27; to the server.<br/>        ``data`` can be a string object, a bytes object, an array object, a<br/>        file-like object that supports a .read() method, or an iterable object.<br/>        &quot;&quot;&quot;<br/>    <br/>        if self.sock is None:<br/>            if self.auto_open:<br/>&gt;               self.connect()<br/><br/>C:\Python38\lib\http\client.py:950: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/><br/>    def connect(self):<br/>&gt;       conn = self._new_conn()<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:200: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>            conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/>    <br/>        except SocketTimeout:<br/>            raise ConnectTimeoutError(<br/>                self,<br/>                &quot;Connection to %s timed out. (connect timeout=%s)&quot;<br/>                % (self.host, self.timeout),<br/>            )<br/>    <br/>        except SocketError as e:<br/>&gt;           raise NewConnectionError(<br/>                self, &quot;Failed to establish a new connection: %s&quot; % e<br/>            )<br/><span class="error">E           urllib3.exceptions.NewConnectionError: &lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:181: NewConnectionError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004903790&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>&gt;               resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:439: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004903A90&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345671&amp;pwd=12345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;42&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>            httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/>    <br/>            # If we&#x27;re going to release the connection in ``finally:``, then<br/>            # the response doesn&#x27;t need to know about the connection. Otherwise<br/>            # it will also try to release it and we&#x27;ll have a double-release<br/>            # mess.<br/>            response_conn = conn if not release_conn else None<br/>    <br/>            # Pass method to Response for length checking<br/>            response_kw[&quot;request_method&quot;] = method<br/>    <br/>            # Import httplib&#x27;s response into our own wrapper object<br/>            response = self.ResponseCls.from_httplib(<br/>                httplib_response,<br/>                pool=self,<br/>                connection=response_conn,<br/>                retries=retries,<br/>                **response_kw<br/>            )<br/>    <br/>            # Everything went great!<br/>            clean_exit = True<br/>    <br/>        except EmptyPoolError:<br/>            # Didn&#x27;t get a connection from the pool, no need to clean up<br/>            clean_exit = True<br/>            release_this_conn = False<br/>            raise<br/>    <br/>        except (<br/>            TimeoutError,<br/>            HTTPException,<br/>            SocketError,<br/>            ProtocolError,<br/>            BaseSSLError,<br/>            SSLError,<br/>            CertificateError,<br/>        ) as e:<br/>            # Discard the connection for these exceptions. It will be<br/>            # replaced during the next _get_conn() call.<br/>            clean_exit = False<br/>            if isinstance(e, (BaseSSLError, CertificateError)):<br/>                e = SSLError(e)<br/>            elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:<br/>                e = ProxyError(&quot;Cannot connect to proxy.&quot;, e)<br/>            elif isinstance(e, (SocketError, HTTPException)):<br/>                e = ProtocolError(&quot;Connection aborted.&quot;, e)<br/>    <br/>&gt;           retries = retries.increment(<br/>                method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:755: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;, response = None<br/>error = NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;)<br/>_pool = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004903A90&gt;<br/>_stacktrace = &lt;traceback object at 0x0000000004AF81C0&gt;<br/><br/>    def increment(<br/>        self,<br/>        method=None,<br/>        url=None,<br/>        response=None,<br/>        error=None,<br/>        _pool=None,<br/>        _stacktrace=None,<br/>    ):<br/>        &quot;&quot;&quot;Return a new Retry object with incremented retry counters.<br/>    <br/>        :param response: A response object, or None, if the server did not<br/>            return a response.<br/>        :type response: :class:`~urllib3.response.HTTPResponse`<br/>        :param Exception error: An error encountered during the request, or<br/>            None if the response was received successfully.<br/>    <br/>        :return: A new ``Retry`` object.<br/>        &quot;&quot;&quot;<br/>        if self.total is False and error:<br/>            # Disabled, indicate to re-raise the error.<br/>            raise six.reraise(type(error), error, _stacktrace)<br/>    <br/>        total = self.total<br/>        if total is not None:<br/>            total -= 1<br/>    <br/>        connect = self.connect<br/>        read = self.read<br/>        redirect = self.redirect<br/>        status_count = self.status<br/>        other = self.other<br/>        cause = &quot;unknown&quot;<br/>        status = None<br/>        redirect_location = None<br/>    <br/>        if error and self._is_connection_error(error):<br/>            # Connect retry?<br/>            if connect is False:<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif connect is not None:<br/>                connect -= 1<br/>    <br/>        elif error and self._is_read_error(error):<br/>            # Read retry?<br/>            if read is False or not self._is_method_retryable(method):<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif read is not None:<br/>                read -= 1<br/>    <br/>        elif error:<br/>            # Other retry?<br/>            if other is not None:<br/>                other -= 1<br/>    <br/>        elif response and response.get_redirect_location():<br/>            # Redirect retry?<br/>            if redirect is not None:<br/>                redirect -= 1<br/>            cause = &quot;too many redirects&quot;<br/>            redirect_location = response.get_redirect_location()<br/>            status = response.status<br/>    <br/>        else:<br/>            # Incrementing because of a server error like a 500 in<br/>            # status_forcelist and the given method is in the allowed_methods<br/>            cause = ResponseError.GENERIC_ERROR<br/>            if response and response.status:<br/>                if status_count is not None:<br/>                    status_count -= 1<br/>                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)<br/>                status = response.status<br/>    <br/>        history = self.history + (<br/>            RequestHistory(method, url, error, status, redirect_location),<br/>        )<br/>    <br/>        new_retry = self.new(<br/>            total=total,<br/>            connect=connect,<br/>            read=read,<br/>            redirect=redirect,<br/>            status=status_count,<br/>            other=other,<br/>            history=history,<br/>        )<br/>    <br/>        if new_retry.is_exhausted():<br/>&gt;           raise MaxRetryError(_pool, url, error or ResponseError(cause))<br/><span class="error">E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\retry.py:574: MaxRetryError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>reg_data = [&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]<br/><br/>    def test_register(reg_data):<br/>        print(f&quot;测试数据为：{reg_data}&quot;)<br/>        url = &quot;http://192.168.150.84:8088/futureloan/mvc/api/member/register&quot;<br/>        cs = {<br/>            &quot;mobilephone&quot;:reg_data[0],<br/>            &quot;pwd&quot;:reg_data[1],<br/>            &quot;regname&quot;:reg_data[2]<br/>        }<br/>&gt;       r = requests.post(url,data=cs)<br/><br/>test_register2.py:18: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>C:\Python38\lib\site-packages\requests\api.py:119: in post<br/>    return request(&#x27;post&#x27;, url, data=data, json=json, **kwargs)<br/>C:\Python38\lib\site-packages\requests\api.py:61: in request<br/>    return session.request(method=method, url=url, **kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:542: in request<br/>    resp = self.send(prep, **send_kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:655: in send<br/>    r = adapter.send(request, **kwargs)<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004903790&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>                resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/>    <br/>            # Send the request.<br/>            else:<br/>                if hasattr(conn, &#x27;proxy_pool&#x27;):<br/>                    conn = conn.proxy_pool<br/>    <br/>                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)<br/>    <br/>                try:<br/>                    low_conn.putrequest(request.method,<br/>                                        url,<br/>                                        skip_accept_encoding=True)<br/>    <br/>                    for header, value in request.headers.items():<br/>                        low_conn.putheader(header, value)<br/>    <br/>                    low_conn.endheaders()<br/>    <br/>                    for i in request.body:<br/>                        low_conn.send(hex(len(i))[2:].encode(&#x27;utf-8&#x27;))<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                        low_conn.send(i)<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                    low_conn.send(b&#x27;0\r\n\r\n&#x27;)<br/>    <br/>                    # Receive the response from the server<br/>                    try:<br/>                        # For Python 2.7, use buffering of HTTP responses<br/>                        r = low_conn.getresponse(buffering=True)<br/>                    except TypeError:<br/>                        # For compatibility with Python 3.3+<br/>                        r = low_conn.getresponse()<br/>    <br/>                    resp = HTTPResponse.from_httplib(<br/>                        r,<br/>                        pool=conn,<br/>                        connection=low_conn,<br/>                        preload_content=False,<br/>                        decode_content=False<br/>                    )<br/>                except:<br/>                    # If we hit any problems here, clean up the connection.<br/>                    # Then, reraise so that we can handle the actual exception.<br/>                    low_conn.close()<br/>                    raise<br/>    <br/>        except (ProtocolError, socket.error) as err:<br/>            raise ConnectionError(err, request=request)<br/>    <br/>        except MaxRetryError as e:<br/>            if isinstance(e.reason, ConnectTimeoutError):<br/>                # TODO: Remove this in 3.0.0: see #2811<br/>                if not isinstance(e.reason, NewConnectionError):<br/>                    raise ConnectTimeout(e, request=request)<br/>    <br/>            if isinstance(e.reason, ResponseError):<br/>                raise RetryError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _ProxyError):<br/>                raise ProxyError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _SSLError):<br/>                # This branch is for urllib3 v1.22 and later.<br/>                raise SSLError(e, request=request)<br/>    <br/>&gt;           raise ConnectionError(e, request=request)<br/><span class="error">E           requests.exceptions.ConnectionError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004903FA0&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:516: ConnectionError<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345671&#x27;, &#x27;12345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/></div></td></tr></tbody>
      <tbody class="rerun results-table-row">
        <tr>
          <td class="col-result">Rerun</td>
          <td class="col-name">day02/test_register2.py::test_register[reg_data1]</td>
          <td class="col-duration">1.00</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div class="log">self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>&gt;           conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:169: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>                sock.connect(sa)<br/>                return sock<br/>    <br/>            except socket.error as e:<br/>                err = e<br/>                if sock is not None:<br/>                    sock.close()<br/>                    sock = None<br/>    <br/>        if err is not None:<br/>&gt;           raise err<br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:96: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>&gt;               sock.connect(sa)<br/><span class="error">E               ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:86: ConnectionRefusedError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004ACDE20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>&gt;           httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:699: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004ACDE20&gt;<br/>conn = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>timeout = Timeout(connect=None, read=None, total=None), chunked = False<br/>httplib_request_kw = {&#x27;body&#x27;: &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;, &#x27;headers&#x27;: {&#x27;User-Agent&#x27;: &#x27;python-requests/2....cept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}}<br/>timeout_obj = Timeout(connect=None, read=None, total=None)<br/><br/>    def _make_request(<br/>        self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Perform a request on a given urllib connection object taken from our<br/>        pool.<br/>    <br/>        :param conn:<br/>            a connection from one of our connection pools<br/>    <br/>        :param timeout:<br/>            Socket timeout in seconds for the request. This can be a<br/>            float or integer, which will set the same timeout value for<br/>            the socket connect and the socket read, or an instance of<br/>            :class:`urllib3.util.Timeout`, which gives you more fine-grained<br/>            control over your timeouts.<br/>        &quot;&quot;&quot;<br/>        self.num_requests += 1<br/>    <br/>        timeout_obj = self._get_timeout(timeout)<br/>        timeout_obj.start_connect()<br/>        conn.timeout = timeout_obj.connect_timeout<br/>    <br/>        # Trigger any extra validation we need to do.<br/>        try:<br/>            self._validate_conn(conn)<br/>        except (SocketTimeout, BaseSSLError) as e:<br/>            # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.<br/>            self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)<br/>            raise<br/>    <br/>        # conn.request() calls http.client.*.request, not the method in<br/>        # urllib3.request. It also calls makefile (recv) on the socket.<br/>        try:<br/>            if chunked:<br/>                conn.request_chunked(method, url, **httplib_request_kw)<br/>            else:<br/>&gt;               conn.request(method, url, **httplib_request_kw)<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:394: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers=None):<br/>        if headers is None:<br/>            headers = {}<br/>        else:<br/>            # Avoid modifying the headers passed into .request()<br/>            headers = headers.copy()<br/>        if &quot;user-agent&quot; not in (six.ensure_str(k.lower()) for k in headers):<br/>            headers[&quot;User-Agent&quot;] = _get_default_user_agent()<br/>&gt;       super(HTTPConnection, self).request(method, url, body=body, headers=headers)<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:234: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers={}, *,<br/>                encode_chunked=False):<br/>        &quot;&quot;&quot;Send a complete request to the server.&quot;&quot;&quot;<br/>&gt;       self._send_request(method, url, body, headers, encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1255: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>encode_chunked = False<br/><br/>    def _send_request(self, method, url, body, headers, encode_chunked):<br/>        # Honor explicitly requested Host: and Accept-Encoding: headers.<br/>        header_names = frozenset(k.lower() for k in headers)<br/>        skips = {}<br/>        if &#x27;host&#x27; in header_names:<br/>            skips[&#x27;skip_host&#x27;] = 1<br/>        if &#x27;accept-encoding&#x27; in header_names:<br/>            skips[&#x27;skip_accept_encoding&#x27;] = 1<br/>    <br/>        self.putrequest(method, url, **skips)<br/>    <br/>        # chunked encoding will happen if HTTP/1.1 is used and either<br/>        # the caller passes encode_chunked=True or the following<br/>        # conditions hold:<br/>        # 1. content-length has not been explicitly set<br/>        # 2. the body is a file or iterable, but not a str or bytes-like<br/>        # 3. Transfer-Encoding has NOT been explicitly set by the caller<br/>    <br/>        if &#x27;content-length&#x27; not in header_names:<br/>            # only chunk body if not explicitly set for backwards<br/>            # compatibility, assuming the client code is already handling the<br/>            # chunking<br/>            if &#x27;transfer-encoding&#x27; not in header_names:<br/>                # if content-length cannot be automatically determined, fall<br/>                # back to chunked encoding<br/>                encode_chunked = False<br/>                content_length = self._get_content_length(body, method)<br/>                if content_length is None:<br/>                    if body is not None:<br/>                        if self.debuglevel &gt; 0:<br/>                            print(&#x27;Unable to determine size of %r&#x27; % body)<br/>                        encode_chunked = True<br/>                        self.putheader(&#x27;Transfer-Encoding&#x27;, &#x27;chunked&#x27;)<br/>                else:<br/>                    self.putheader(&#x27;Content-Length&#x27;, str(content_length))<br/>        else:<br/>            encode_chunked = False<br/>    <br/>        for hdr, value in headers.items():<br/>            self.putheader(hdr, value)<br/>        if isinstance(body, str):<br/>            # RFC 2616 Section 3.7.1 says that text default has a<br/>            # default charset of iso-8859-1.<br/>            body = _encode(body, &#x27;body&#x27;)<br/>&gt;       self.endheaders(body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1301: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/>message_body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/><br/>    def endheaders(self, message_body=None, *, encode_chunked=False):<br/>        &quot;&quot;&quot;Indicate that the last header line has been sent to the server.<br/>    <br/>        This method sends the request to the server.  The optional message_body<br/>        argument can be used to pass a message body associated with the<br/>        request.<br/>        &quot;&quot;&quot;<br/>        if self.__state == _CS_REQ_STARTED:<br/>            self.__state = _CS_REQ_SENT<br/>        else:<br/>            raise CannotSendHeader()<br/>&gt;       self._send_output(message_body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1250: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/>message_body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>encode_chunked = False<br/><br/>    def _send_output(self, message_body=None, encode_chunked=False):<br/>        &quot;&quot;&quot;Send the currently buffered request and clear the buffer.<br/>    <br/>        Appends an extra \\r\\n to the buffer.<br/>        A message_body may be specified, to be appended to the request.<br/>        &quot;&quot;&quot;<br/>        self._buffer.extend((b&quot;&quot;, b&quot;&quot;))<br/>        msg = b&quot;\r\n&quot;.join(self._buffer)<br/>        del self._buffer[:]<br/>&gt;       self.send(msg)<br/><br/>C:\Python38\lib\http\client.py:1010: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/>data = b&#x27;POST /futureloan/mvc/api/member/register HTTP/1.1\r\nHost: 192.168.150.84:8088\r\nUser-Agent: python-requests/2.25.1...Accept: */*\r\nConnection: keep-alive\r\nContent-Length: 60\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n&#x27;<br/><br/>    def send(self, data):<br/>        &quot;&quot;&quot;Send `data&#x27; to the server.<br/>        ``data`` can be a string object, a bytes object, an array object, a<br/>        file-like object that supports a .read() method, or an iterable object.<br/>        &quot;&quot;&quot;<br/>    <br/>        if self.sock is None:<br/>            if self.auto_open:<br/>&gt;               self.connect()<br/><br/>C:\Python38\lib\http\client.py:950: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/><br/>    def connect(self):<br/>&gt;       conn = self._new_conn()<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:200: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>            conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/>    <br/>        except SocketTimeout:<br/>            raise ConnectTimeoutError(<br/>                self,<br/>                &quot;Connection to %s timed out. (connect timeout=%s)&quot;<br/>                % (self.host, self.timeout),<br/>            )<br/>    <br/>        except SocketError as e:<br/>&gt;           raise NewConnectionError(<br/>                self, &quot;Failed to establish a new connection: %s&quot; % e<br/>            )<br/><span class="error">E           urllib3.exceptions.NewConnectionError: &lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:181: NewConnectionError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004ACDCA0&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>&gt;               resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:439: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004ACDE20&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>            httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/>    <br/>            # If we&#x27;re going to release the connection in ``finally:``, then<br/>            # the response doesn&#x27;t need to know about the connection. Otherwise<br/>            # it will also try to release it and we&#x27;ll have a double-release<br/>            # mess.<br/>            response_conn = conn if not release_conn else None<br/>    <br/>            # Pass method to Response for length checking<br/>            response_kw[&quot;request_method&quot;] = method<br/>    <br/>            # Import httplib&#x27;s response into our own wrapper object<br/>            response = self.ResponseCls.from_httplib(<br/>                httplib_response,<br/>                pool=self,<br/>                connection=response_conn,<br/>                retries=retries,<br/>                **response_kw<br/>            )<br/>    <br/>            # Everything went great!<br/>            clean_exit = True<br/>    <br/>        except EmptyPoolError:<br/>            # Didn&#x27;t get a connection from the pool, no need to clean up<br/>            clean_exit = True<br/>            release_this_conn = False<br/>            raise<br/>    <br/>        except (<br/>            TimeoutError,<br/>            HTTPException,<br/>            SocketError,<br/>            ProtocolError,<br/>            BaseSSLError,<br/>            SSLError,<br/>            CertificateError,<br/>        ) as e:<br/>            # Discard the connection for these exceptions. It will be<br/>            # replaced during the next _get_conn() call.<br/>            clean_exit = False<br/>            if isinstance(e, (BaseSSLError, CertificateError)):<br/>                e = SSLError(e)<br/>            elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:<br/>                e = ProxyError(&quot;Cannot connect to proxy.&quot;, e)<br/>            elif isinstance(e, (SocketError, HTTPException)):<br/>                e = ProtocolError(&quot;Connection aborted.&quot;, e)<br/>    <br/>&gt;           retries = retries.increment(<br/>                method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:755: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;, response = None<br/>error = NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;)<br/>_pool = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004ACDE20&gt;<br/>_stacktrace = &lt;traceback object at 0x00000000049E2D40&gt;<br/><br/>    def increment(<br/>        self,<br/>        method=None,<br/>        url=None,<br/>        response=None,<br/>        error=None,<br/>        _pool=None,<br/>        _stacktrace=None,<br/>    ):<br/>        &quot;&quot;&quot;Return a new Retry object with incremented retry counters.<br/>    <br/>        :param response: A response object, or None, if the server did not<br/>            return a response.<br/>        :type response: :class:`~urllib3.response.HTTPResponse`<br/>        :param Exception error: An error encountered during the request, or<br/>            None if the response was received successfully.<br/>    <br/>        :return: A new ``Retry`` object.<br/>        &quot;&quot;&quot;<br/>        if self.total is False and error:<br/>            # Disabled, indicate to re-raise the error.<br/>            raise six.reraise(type(error), error, _stacktrace)<br/>    <br/>        total = self.total<br/>        if total is not None:<br/>            total -= 1<br/>    <br/>        connect = self.connect<br/>        read = self.read<br/>        redirect = self.redirect<br/>        status_count = self.status<br/>        other = self.other<br/>        cause = &quot;unknown&quot;<br/>        status = None<br/>        redirect_location = None<br/>    <br/>        if error and self._is_connection_error(error):<br/>            # Connect retry?<br/>            if connect is False:<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif connect is not None:<br/>                connect -= 1<br/>    <br/>        elif error and self._is_read_error(error):<br/>            # Read retry?<br/>            if read is False or not self._is_method_retryable(method):<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif read is not None:<br/>                read -= 1<br/>    <br/>        elif error:<br/>            # Other retry?<br/>            if other is not None:<br/>                other -= 1<br/>    <br/>        elif response and response.get_redirect_location():<br/>            # Redirect retry?<br/>            if redirect is not None:<br/>                redirect -= 1<br/>            cause = &quot;too many redirects&quot;<br/>            redirect_location = response.get_redirect_location()<br/>            status = response.status<br/>    <br/>        else:<br/>            # Incrementing because of a server error like a 500 in<br/>            # status_forcelist and the given method is in the allowed_methods<br/>            cause = ResponseError.GENERIC_ERROR<br/>            if response and response.status:<br/>                if status_count is not None:<br/>                    status_count -= 1<br/>                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)<br/>                status = response.status<br/>    <br/>        history = self.history + (<br/>            RequestHistory(method, url, error, status, redirect_location),<br/>        )<br/>    <br/>        new_retry = self.new(<br/>            total=total,<br/>            connect=connect,<br/>            read=read,<br/>            redirect=redirect,<br/>            status=status_count,<br/>            other=other,<br/>            history=history,<br/>        )<br/>    <br/>        if new_retry.is_exhausted():<br/>&gt;           raise MaxRetryError(_pool, url, error or ResponseError(cause))<br/><span class="error">E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\retry.py:574: MaxRetryError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>reg_data = [&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]<br/><br/>    def test_register(reg_data):<br/>        print(f&quot;测试数据为：{reg_data}&quot;)<br/>        url = &quot;http://192.168.150.84:8088/futureloan/mvc/api/member/register&quot;<br/>        cs = {<br/>            &quot;mobilephone&quot;:reg_data[0],<br/>            &quot;pwd&quot;:reg_data[1],<br/>            &quot;regname&quot;:reg_data[2]<br/>        }<br/>&gt;       r = requests.post(url,data=cs)<br/><br/>test_register2.py:18: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>C:\Python38\lib\site-packages\requests\api.py:119: in post<br/>    return request(&#x27;post&#x27;, url, data=data, json=json, **kwargs)<br/>C:\Python38\lib\site-packages\requests\api.py:61: in request<br/>    return session.request(method=method, url=url, **kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:542: in request<br/>    resp = self.send(prep, **send_kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:655: in send<br/>    r = adapter.send(request, **kwargs)<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004ACDCA0&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>                resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/>    <br/>            # Send the request.<br/>            else:<br/>                if hasattr(conn, &#x27;proxy_pool&#x27;):<br/>                    conn = conn.proxy_pool<br/>    <br/>                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)<br/>    <br/>                try:<br/>                    low_conn.putrequest(request.method,<br/>                                        url,<br/>                                        skip_accept_encoding=True)<br/>    <br/>                    for header, value in request.headers.items():<br/>                        low_conn.putheader(header, value)<br/>    <br/>                    low_conn.endheaders()<br/>    <br/>                    for i in request.body:<br/>                        low_conn.send(hex(len(i))[2:].encode(&#x27;utf-8&#x27;))<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                        low_conn.send(i)<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                    low_conn.send(b&#x27;0\r\n\r\n&#x27;)<br/>    <br/>                    # Receive the response from the server<br/>                    try:<br/>                        # For Python 2.7, use buffering of HTTP responses<br/>                        r = low_conn.getresponse(buffering=True)<br/>                    except TypeError:<br/>                        # For compatibility with Python 3.3+<br/>                        r = low_conn.getresponse()<br/>    <br/>                    resp = HTTPResponse.from_httplib(<br/>                        r,<br/>                        pool=conn,<br/>                        connection=low_conn,<br/>                        preload_content=False,<br/>                        decode_content=False<br/>                    )<br/>                except:<br/>                    # If we hit any problems here, clean up the connection.<br/>                    # Then, reraise so that we can handle the actual exception.<br/>                    low_conn.close()<br/>                    raise<br/>    <br/>        except (ProtocolError, socket.error) as err:<br/>            raise ConnectionError(err, request=request)<br/>    <br/>        except MaxRetryError as e:<br/>            if isinstance(e.reason, ConnectTimeoutError):<br/>                # TODO: Remove this in 3.0.0: see #2811<br/>                if not isinstance(e.reason, NewConnectionError):<br/>                    raise ConnectTimeout(e, request=request)<br/>    <br/>            if isinstance(e.reason, ResponseError):<br/>                raise RetryError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _ProxyError):<br/>                raise ProxyError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _SSLError):<br/>                # This branch is for urllib3 v1.22 and later.<br/>                raise SSLError(e, request=request)<br/>    <br/>&gt;           raise ConnectionError(e, request=request)<br/><span class="error">E           requests.exceptions.ConnectionError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004A1AE20&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:516: ConnectionError<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/></div></td></tr></tbody>
      <tbody class="rerun results-table-row">
        <tr>
          <td class="col-result">Rerun</td>
          <td class="col-name">day02/test_register2.py::test_register[reg_data1]</td>
          <td class="col-duration">1.00</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div class="log">self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>&gt;           conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:169: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>                sock.connect(sa)<br/>                return sock<br/>    <br/>            except socket.error as e:<br/>                err = e<br/>                if sock is not None:<br/>                    sock.close()<br/>                    sock = None<br/>    <br/>        if err is not None:<br/>&gt;           raise err<br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:96: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>&gt;               sock.connect(sa)<br/><span class="error">E               ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:86: ConnectionRefusedError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004CDF520&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>&gt;           httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:699: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004CDF520&gt;<br/>conn = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>timeout = Timeout(connect=None, read=None, total=None), chunked = False<br/>httplib_request_kw = {&#x27;body&#x27;: &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;, &#x27;headers&#x27;: {&#x27;User-Agent&#x27;: &#x27;python-requests/2....cept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}}<br/>timeout_obj = Timeout(connect=None, read=None, total=None)<br/><br/>    def _make_request(<br/>        self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Perform a request on a given urllib connection object taken from our<br/>        pool.<br/>    <br/>        :param conn:<br/>            a connection from one of our connection pools<br/>    <br/>        :param timeout:<br/>            Socket timeout in seconds for the request. This can be a<br/>            float or integer, which will set the same timeout value for<br/>            the socket connect and the socket read, or an instance of<br/>            :class:`urllib3.util.Timeout`, which gives you more fine-grained<br/>            control over your timeouts.<br/>        &quot;&quot;&quot;<br/>        self.num_requests += 1<br/>    <br/>        timeout_obj = self._get_timeout(timeout)<br/>        timeout_obj.start_connect()<br/>        conn.timeout = timeout_obj.connect_timeout<br/>    <br/>        # Trigger any extra validation we need to do.<br/>        try:<br/>            self._validate_conn(conn)<br/>        except (SocketTimeout, BaseSSLError) as e:<br/>            # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.<br/>            self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)<br/>            raise<br/>    <br/>        # conn.request() calls http.client.*.request, not the method in<br/>        # urllib3.request. It also calls makefile (recv) on the socket.<br/>        try:<br/>            if chunked:<br/>                conn.request_chunked(method, url, **httplib_request_kw)<br/>            else:<br/>&gt;               conn.request(method, url, **httplib_request_kw)<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:394: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers=None):<br/>        if headers is None:<br/>            headers = {}<br/>        else:<br/>            # Avoid modifying the headers passed into .request()<br/>            headers = headers.copy()<br/>        if &quot;user-agent&quot; not in (six.ensure_str(k.lower()) for k in headers):<br/>            headers[&quot;User-Agent&quot;] = _get_default_user_agent()<br/>&gt;       super(HTTPConnection, self).request(method, url, body=body, headers=headers)<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:234: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers={}, *,<br/>                encode_chunked=False):<br/>        &quot;&quot;&quot;Send a complete request to the server.&quot;&quot;&quot;<br/>&gt;       self._send_request(method, url, body, headers, encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1255: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>encode_chunked = False<br/><br/>    def _send_request(self, method, url, body, headers, encode_chunked):<br/>        # Honor explicitly requested Host: and Accept-Encoding: headers.<br/>        header_names = frozenset(k.lower() for k in headers)<br/>        skips = {}<br/>        if &#x27;host&#x27; in header_names:<br/>            skips[&#x27;skip_host&#x27;] = 1<br/>        if &#x27;accept-encoding&#x27; in header_names:<br/>            skips[&#x27;skip_accept_encoding&#x27;] = 1<br/>    <br/>        self.putrequest(method, url, **skips)<br/>    <br/>        # chunked encoding will happen if HTTP/1.1 is used and either<br/>        # the caller passes encode_chunked=True or the following<br/>        # conditions hold:<br/>        # 1. content-length has not been explicitly set<br/>        # 2. the body is a file or iterable, but not a str or bytes-like<br/>        # 3. Transfer-Encoding has NOT been explicitly set by the caller<br/>    <br/>        if &#x27;content-length&#x27; not in header_names:<br/>            # only chunk body if not explicitly set for backwards<br/>            # compatibility, assuming the client code is already handling the<br/>            # chunking<br/>            if &#x27;transfer-encoding&#x27; not in header_names:<br/>                # if content-length cannot be automatically determined, fall<br/>                # back to chunked encoding<br/>                encode_chunked = False<br/>                content_length = self._get_content_length(body, method)<br/>                if content_length is None:<br/>                    if body is not None:<br/>                        if self.debuglevel &gt; 0:<br/>                            print(&#x27;Unable to determine size of %r&#x27; % body)<br/>                        encode_chunked = True<br/>                        self.putheader(&#x27;Transfer-Encoding&#x27;, &#x27;chunked&#x27;)<br/>                else:<br/>                    self.putheader(&#x27;Content-Length&#x27;, str(content_length))<br/>        else:<br/>            encode_chunked = False<br/>    <br/>        for hdr, value in headers.items():<br/>            self.putheader(hdr, value)<br/>        if isinstance(body, str):<br/>            # RFC 2616 Section 3.7.1 says that text default has a<br/>            # default charset of iso-8859-1.<br/>            body = _encode(body, &#x27;body&#x27;)<br/>&gt;       self.endheaders(body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1301: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/>message_body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/><br/>    def endheaders(self, message_body=None, *, encode_chunked=False):<br/>        &quot;&quot;&quot;Indicate that the last header line has been sent to the server.<br/>    <br/>        This method sends the request to the server.  The optional message_body<br/>        argument can be used to pass a message body associated with the<br/>        request.<br/>        &quot;&quot;&quot;<br/>        if self.__state == _CS_REQ_STARTED:<br/>            self.__state = _CS_REQ_SENT<br/>        else:<br/>            raise CannotSendHeader()<br/>&gt;       self._send_output(message_body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1250: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/>message_body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>encode_chunked = False<br/><br/>    def _send_output(self, message_body=None, encode_chunked=False):<br/>        &quot;&quot;&quot;Send the currently buffered request and clear the buffer.<br/>    <br/>        Appends an extra \\r\\n to the buffer.<br/>        A message_body may be specified, to be appended to the request.<br/>        &quot;&quot;&quot;<br/>        self._buffer.extend((b&quot;&quot;, b&quot;&quot;))<br/>        msg = b&quot;\r\n&quot;.join(self._buffer)<br/>        del self._buffer[:]<br/>&gt;       self.send(msg)<br/><br/>C:\Python38\lib\http\client.py:1010: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/>data = b&#x27;POST /futureloan/mvc/api/member/register HTTP/1.1\r\nHost: 192.168.150.84:8088\r\nUser-Agent: python-requests/2.25.1...Accept: */*\r\nConnection: keep-alive\r\nContent-Length: 60\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n&#x27;<br/><br/>    def send(self, data):<br/>        &quot;&quot;&quot;Send `data&#x27; to the server.<br/>        ``data`` can be a string object, a bytes object, an array object, a<br/>        file-like object that supports a .read() method, or an iterable object.<br/>        &quot;&quot;&quot;<br/>    <br/>        if self.sock is None:<br/>            if self.auto_open:<br/>&gt;               self.connect()<br/><br/>C:\Python38\lib\http\client.py:950: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/><br/>    def connect(self):<br/>&gt;       conn = self._new_conn()<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:200: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>            conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/>    <br/>        except SocketTimeout:<br/>            raise ConnectTimeoutError(<br/>                self,<br/>                &quot;Connection to %s timed out. (connect timeout=%s)&quot;<br/>                % (self.host, self.timeout),<br/>            )<br/>    <br/>        except SocketError as e:<br/>&gt;           raise NewConnectionError(<br/>                self, &quot;Failed to establish a new connection: %s&quot; % e<br/>            )<br/><span class="error">E           urllib3.exceptions.NewConnectionError: &lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:181: NewConnectionError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004CDF610&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>&gt;               resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:439: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004CDF520&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>            httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/>    <br/>            # If we&#x27;re going to release the connection in ``finally:``, then<br/>            # the response doesn&#x27;t need to know about the connection. Otherwise<br/>            # it will also try to release it and we&#x27;ll have a double-release<br/>            # mess.<br/>            response_conn = conn if not release_conn else None<br/>    <br/>            # Pass method to Response for length checking<br/>            response_kw[&quot;request_method&quot;] = method<br/>    <br/>            # Import httplib&#x27;s response into our own wrapper object<br/>            response = self.ResponseCls.from_httplib(<br/>                httplib_response,<br/>                pool=self,<br/>                connection=response_conn,<br/>                retries=retries,<br/>                **response_kw<br/>            )<br/>    <br/>            # Everything went great!<br/>            clean_exit = True<br/>    <br/>        except EmptyPoolError:<br/>            # Didn&#x27;t get a connection from the pool, no need to clean up<br/>            clean_exit = True<br/>            release_this_conn = False<br/>            raise<br/>    <br/>        except (<br/>            TimeoutError,<br/>            HTTPException,<br/>            SocketError,<br/>            ProtocolError,<br/>            BaseSSLError,<br/>            SSLError,<br/>            CertificateError,<br/>        ) as e:<br/>            # Discard the connection for these exceptions. It will be<br/>            # replaced during the next _get_conn() call.<br/>            clean_exit = False<br/>            if isinstance(e, (BaseSSLError, CertificateError)):<br/>                e = SSLError(e)<br/>            elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:<br/>                e = ProxyError(&quot;Cannot connect to proxy.&quot;, e)<br/>            elif isinstance(e, (SocketError, HTTPException)):<br/>                e = ProtocolError(&quot;Connection aborted.&quot;, e)<br/>    <br/>&gt;           retries = retries.increment(<br/>                method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:755: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;, response = None<br/>error = NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;)<br/>_pool = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004CDF520&gt;<br/>_stacktrace = &lt;traceback object at 0x0000000004CA4100&gt;<br/><br/>    def increment(<br/>        self,<br/>        method=None,<br/>        url=None,<br/>        response=None,<br/>        error=None,<br/>        _pool=None,<br/>        _stacktrace=None,<br/>    ):<br/>        &quot;&quot;&quot;Return a new Retry object with incremented retry counters.<br/>    <br/>        :param response: A response object, or None, if the server did not<br/>            return a response.<br/>        :type response: :class:`~urllib3.response.HTTPResponse`<br/>        :param Exception error: An error encountered during the request, or<br/>            None if the response was received successfully.<br/>    <br/>        :return: A new ``Retry`` object.<br/>        &quot;&quot;&quot;<br/>        if self.total is False and error:<br/>            # Disabled, indicate to re-raise the error.<br/>            raise six.reraise(type(error), error, _stacktrace)<br/>    <br/>        total = self.total<br/>        if total is not None:<br/>            total -= 1<br/>    <br/>        connect = self.connect<br/>        read = self.read<br/>        redirect = self.redirect<br/>        status_count = self.status<br/>        other = self.other<br/>        cause = &quot;unknown&quot;<br/>        status = None<br/>        redirect_location = None<br/>    <br/>        if error and self._is_connection_error(error):<br/>            # Connect retry?<br/>            if connect is False:<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif connect is not None:<br/>                connect -= 1<br/>    <br/>        elif error and self._is_read_error(error):<br/>            # Read retry?<br/>            if read is False or not self._is_method_retryable(method):<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif read is not None:<br/>                read -= 1<br/>    <br/>        elif error:<br/>            # Other retry?<br/>            if other is not None:<br/>                other -= 1<br/>    <br/>        elif response and response.get_redirect_location():<br/>            # Redirect retry?<br/>            if redirect is not None:<br/>                redirect -= 1<br/>            cause = &quot;too many redirects&quot;<br/>            redirect_location = response.get_redirect_location()<br/>            status = response.status<br/>    <br/>        else:<br/>            # Incrementing because of a server error like a 500 in<br/>            # status_forcelist and the given method is in the allowed_methods<br/>            cause = ResponseError.GENERIC_ERROR<br/>            if response and response.status:<br/>                if status_count is not None:<br/>                    status_count -= 1<br/>                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)<br/>                status = response.status<br/>    <br/>        history = self.history + (<br/>            RequestHistory(method, url, error, status, redirect_location),<br/>        )<br/>    <br/>        new_retry = self.new(<br/>            total=total,<br/>            connect=connect,<br/>            read=read,<br/>            redirect=redirect,<br/>            status=status_count,<br/>            other=other,<br/>            history=history,<br/>        )<br/>    <br/>        if new_retry.is_exhausted():<br/>&gt;           raise MaxRetryError(_pool, url, error or ResponseError(cause))<br/><span class="error">E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\retry.py:574: MaxRetryError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>reg_data = [&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]<br/><br/>    def test_register(reg_data):<br/>        print(f&quot;测试数据为：{reg_data}&quot;)<br/>        url = &quot;http://192.168.150.84:8088/futureloan/mvc/api/member/register&quot;<br/>        cs = {<br/>            &quot;mobilephone&quot;:reg_data[0],<br/>            &quot;pwd&quot;:reg_data[1],<br/>            &quot;regname&quot;:reg_data[2]<br/>        }<br/>&gt;       r = requests.post(url,data=cs)<br/><br/>test_register2.py:18: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>C:\Python38\lib\site-packages\requests\api.py:119: in post<br/>    return request(&#x27;post&#x27;, url, data=data, json=json, **kwargs)<br/>C:\Python38\lib\site-packages\requests\api.py:61: in request<br/>    return session.request(method=method, url=url, **kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:542: in request<br/>    resp = self.send(prep, **send_kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:655: in send<br/>    r = adapter.send(request, **kwargs)<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004CDF610&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>                resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/>    <br/>            # Send the request.<br/>            else:<br/>                if hasattr(conn, &#x27;proxy_pool&#x27;):<br/>                    conn = conn.proxy_pool<br/>    <br/>                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)<br/>    <br/>                try:<br/>                    low_conn.putrequest(request.method,<br/>                                        url,<br/>                                        skip_accept_encoding=True)<br/>    <br/>                    for header, value in request.headers.items():<br/>                        low_conn.putheader(header, value)<br/>    <br/>                    low_conn.endheaders()<br/>    <br/>                    for i in request.body:<br/>                        low_conn.send(hex(len(i))[2:].encode(&#x27;utf-8&#x27;))<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                        low_conn.send(i)<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                    low_conn.send(b&#x27;0\r\n\r\n&#x27;)<br/>    <br/>                    # Receive the response from the server<br/>                    try:<br/>                        # For Python 2.7, use buffering of HTTP responses<br/>                        r = low_conn.getresponse(buffering=True)<br/>                    except TypeError:<br/>                        # For compatibility with Python 3.3+<br/>                        r = low_conn.getresponse()<br/>    <br/>                    resp = HTTPResponse.from_httplib(<br/>                        r,<br/>                        pool=conn,<br/>                        connection=low_conn,<br/>                        preload_content=False,<br/>                        decode_content=False<br/>                    )<br/>                except:<br/>                    # If we hit any problems here, clean up the connection.<br/>                    # Then, reraise so that we can handle the actual exception.<br/>                    low_conn.close()<br/>                    raise<br/>    <br/>        except (ProtocolError, socket.error) as err:<br/>            raise ConnectionError(err, request=request)<br/>    <br/>        except MaxRetryError as e:<br/>            if isinstance(e.reason, ConnectTimeoutError):<br/>                # TODO: Remove this in 3.0.0: see #2811<br/>                if not isinstance(e.reason, NewConnectionError):<br/>                    raise ConnectTimeout(e, request=request)<br/>    <br/>            if isinstance(e.reason, ResponseError):<br/>                raise RetryError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _ProxyError):<br/>                raise ProxyError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _SSLError):<br/>                # This branch is for urllib3 v1.22 and later.<br/>                raise SSLError(e, request=request)<br/>    <br/>&gt;           raise ConnectionError(e, request=request)<br/><span class="error">E           requests.exceptions.ConnectionError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004A300A0&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:516: ConnectionError<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/></div></td></tr></tbody>
      <tbody class="rerun results-table-row">
        <tr>
          <td class="col-result">Rerun</td>
          <td class="col-name">day02/test_register2.py::test_register[reg_data1]</td>
          <td class="col-duration">1.01</td>
          <td class="col-links"></td></tr>
        <tr>
          <td class="extra" colspan="4">
            <div class="log">self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>&gt;           conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:169: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>                sock.connect(sa)<br/>                return sock<br/>    <br/>            except socket.error as e:<br/>                err = e<br/>                if sock is not None:<br/>                    sock.close()<br/>                    sock = None<br/>    <br/>        if err is not None:<br/>&gt;           raise err<br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:96: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>address = (&#x27;192.168.150.84&#x27;, 8088), timeout = None, source_address = None<br/>socket_options = [(6, 1, 1)]<br/><br/>    def create_connection(<br/>        address,<br/>        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,<br/>        source_address=None,<br/>        socket_options=None,<br/>    ):<br/>        &quot;&quot;&quot;Connect to *address* and return the socket object.<br/>    <br/>        Convenience function.  Connect to *address* (a 2-tuple ``(host,<br/>        port)``) and return the socket object.  Passing the optional<br/>        *timeout* parameter will set the timeout on the socket instance<br/>        before attempting to connect.  If no *timeout* is supplied, the<br/>        global default timeout setting returned by :func:`socket.getdefaulttimeout`<br/>        is used.  If *source_address* is set it must be a tuple of (host, port)<br/>        for the socket to bind as a source address before making the connection.<br/>        An host of &#x27;&#x27; or port 0 tells the OS to use the default.<br/>        &quot;&quot;&quot;<br/>    <br/>        host, port = address<br/>        if host.startswith(&quot;[&quot;):<br/>            host = host.strip(&quot;[]&quot;)<br/>        err = None<br/>    <br/>        # Using the value from allowed_gai_family() in the context of getaddrinfo lets<br/>        # us select whether to work with IPv4 DNS records, IPv6 records, or both.<br/>        # The original create_connection function always returns all records.<br/>        family = allowed_gai_family()<br/>    <br/>        try:<br/>            host.encode(&quot;idna&quot;)<br/>        except UnicodeError:<br/>            return six.raise_from(<br/>                LocationParseError(u&quot;&#x27;%s&#x27;, label empty or too long&quot; % host), None<br/>            )<br/>    <br/>        for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):<br/>            af, socktype, proto, canonname, sa = res<br/>            sock = None<br/>            try:<br/>                sock = socket.socket(af, socktype, proto)<br/>    <br/>                # If provided, set socket level options before connecting.<br/>                _set_socket_options(sock, socket_options)<br/>    <br/>                if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT:<br/>                    sock.settimeout(timeout)<br/>                if source_address:<br/>                    sock.bind(source_address)<br/>&gt;               sock.connect(sa)<br/><span class="error">E               ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\connection.py:86: ConnectionRefusedError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004C6DDC0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>&gt;           httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:699: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004C6DDC0&gt;<br/>conn = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>timeout = Timeout(connect=None, read=None, total=None), chunked = False<br/>httplib_request_kw = {&#x27;body&#x27;: &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;, &#x27;headers&#x27;: {&#x27;User-Agent&#x27;: &#x27;python-requests/2....cept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}}<br/>timeout_obj = Timeout(connect=None, read=None, total=None)<br/><br/>    def _make_request(<br/>        self, conn, method, url, timeout=_Default, chunked=False, **httplib_request_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Perform a request on a given urllib connection object taken from our<br/>        pool.<br/>    <br/>        :param conn:<br/>            a connection from one of our connection pools<br/>    <br/>        :param timeout:<br/>            Socket timeout in seconds for the request. This can be a<br/>            float or integer, which will set the same timeout value for<br/>            the socket connect and the socket read, or an instance of<br/>            :class:`urllib3.util.Timeout`, which gives you more fine-grained<br/>            control over your timeouts.<br/>        &quot;&quot;&quot;<br/>        self.num_requests += 1<br/>    <br/>        timeout_obj = self._get_timeout(timeout)<br/>        timeout_obj.start_connect()<br/>        conn.timeout = timeout_obj.connect_timeout<br/>    <br/>        # Trigger any extra validation we need to do.<br/>        try:<br/>            self._validate_conn(conn)<br/>        except (SocketTimeout, BaseSSLError) as e:<br/>            # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.<br/>            self._raise_timeout(err=e, url=url, timeout_value=conn.timeout)<br/>            raise<br/>    <br/>        # conn.request() calls http.client.*.request, not the method in<br/>        # urllib3.request. It also calls makefile (recv) on the socket.<br/>        try:<br/>            if chunked:<br/>                conn.request_chunked(method, url, **httplib_request_kw)<br/>            else:<br/>&gt;               conn.request(method, url, **httplib_request_kw)<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:394: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers=None):<br/>        if headers is None:<br/>            headers = {}<br/>        else:<br/>            # Avoid modifying the headers passed into .request()<br/>            headers = headers.copy()<br/>        if &quot;user-agent&quot; not in (six.ensure_str(k.lower()) for k in headers):<br/>            headers[&quot;User-Agent&quot;] = _get_default_user_agent()<br/>&gt;       super(HTTPConnection, self).request(method, url, body=body, headers=headers)<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:234: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/><br/>    def request(self, method, url, body=None, headers={}, *,<br/>                encode_chunked=False):<br/>        &quot;&quot;&quot;Send a complete request to the server.&quot;&quot;&quot;<br/>&gt;       self._send_request(method, url, body, headers, encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1255: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>encode_chunked = False<br/><br/>    def _send_request(self, method, url, body, headers, encode_chunked):<br/>        # Honor explicitly requested Host: and Accept-Encoding: headers.<br/>        header_names = frozenset(k.lower() for k in headers)<br/>        skips = {}<br/>        if &#x27;host&#x27; in header_names:<br/>            skips[&#x27;skip_host&#x27;] = 1<br/>        if &#x27;accept-encoding&#x27; in header_names:<br/>            skips[&#x27;skip_accept_encoding&#x27;] = 1<br/>    <br/>        self.putrequest(method, url, **skips)<br/>    <br/>        # chunked encoding will happen if HTTP/1.1 is used and either<br/>        # the caller passes encode_chunked=True or the following<br/>        # conditions hold:<br/>        # 1. content-length has not been explicitly set<br/>        # 2. the body is a file or iterable, but not a str or bytes-like<br/>        # 3. Transfer-Encoding has NOT been explicitly set by the caller<br/>    <br/>        if &#x27;content-length&#x27; not in header_names:<br/>            # only chunk body if not explicitly set for backwards<br/>            # compatibility, assuming the client code is already handling the<br/>            # chunking<br/>            if &#x27;transfer-encoding&#x27; not in header_names:<br/>                # if content-length cannot be automatically determined, fall<br/>                # back to chunked encoding<br/>                encode_chunked = False<br/>                content_length = self._get_content_length(body, method)<br/>                if content_length is None:<br/>                    if body is not None:<br/>                        if self.debuglevel &gt; 0:<br/>                            print(&#x27;Unable to determine size of %r&#x27; % body)<br/>                        encode_chunked = True<br/>                        self.putheader(&#x27;Transfer-Encoding&#x27;, &#x27;chunked&#x27;)<br/>                else:<br/>                    self.putheader(&#x27;Content-Length&#x27;, str(content_length))<br/>        else:<br/>            encode_chunked = False<br/>    <br/>        for hdr, value in headers.items():<br/>            self.putheader(hdr, value)<br/>        if isinstance(body, str):<br/>            # RFC 2616 Section 3.7.1 says that text default has a<br/>            # default charset of iso-8859-1.<br/>            body = _encode(body, &#x27;body&#x27;)<br/>&gt;       self.endheaders(body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1301: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/>message_body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/><br/>    def endheaders(self, message_body=None, *, encode_chunked=False):<br/>        &quot;&quot;&quot;Indicate that the last header line has been sent to the server.<br/>    <br/>        This method sends the request to the server.  The optional message_body<br/>        argument can be used to pass a message body associated with the<br/>        request.<br/>        &quot;&quot;&quot;<br/>        if self.__state == _CS_REQ_STARTED:<br/>            self.__state = _CS_REQ_SENT<br/>        else:<br/>            raise CannotSendHeader()<br/>&gt;       self._send_output(message_body, encode_chunked=encode_chunked)<br/><br/>C:\Python38\lib\http\client.py:1250: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/>message_body = b&#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>encode_chunked = False<br/><br/>    def _send_output(self, message_body=None, encode_chunked=False):<br/>        &quot;&quot;&quot;Send the currently buffered request and clear the buffer.<br/>    <br/>        Appends an extra \\r\\n to the buffer.<br/>        A message_body may be specified, to be appended to the request.<br/>        &quot;&quot;&quot;<br/>        self._buffer.extend((b&quot;&quot;, b&quot;&quot;))<br/>        msg = b&quot;\r\n&quot;.join(self._buffer)<br/>        del self._buffer[:]<br/>&gt;       self.send(msg)<br/><br/>C:\Python38\lib\http\client.py:1010: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/>data = b&#x27;POST /futureloan/mvc/api/member/register HTTP/1.1\r\nHost: 192.168.150.84:8088\r\nUser-Agent: python-requests/2.25.1...Accept: */*\r\nConnection: keep-alive\r\nContent-Length: 60\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n&#x27;<br/><br/>    def send(self, data):<br/>        &quot;&quot;&quot;Send `data&#x27; to the server.<br/>        ``data`` can be a string object, a bytes object, an array object, a<br/>        file-like object that supports a .read() method, or an iterable object.<br/>        &quot;&quot;&quot;<br/>    <br/>        if self.sock is None:<br/>            if self.auto_open:<br/>&gt;               self.connect()<br/><br/>C:\Python38\lib\http\client.py:950: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/><br/>    def connect(self):<br/>&gt;       conn = self._new_conn()<br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:200: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;<br/><br/>    def _new_conn(self):<br/>        &quot;&quot;&quot;Establish a socket connection and set nodelay settings on it.<br/>    <br/>        :return: New socket connection.<br/>        &quot;&quot;&quot;<br/>        extra_kw = {}<br/>        if self.source_address:<br/>            extra_kw[&quot;source_address&quot;] = self.source_address<br/>    <br/>        if self.socket_options:<br/>            extra_kw[&quot;socket_options&quot;] = self.socket_options<br/>    <br/>        try:<br/>            conn = connection.create_connection(<br/>                (self._dns_host, self.port), self.timeout, **extra_kw<br/>            )<br/>    <br/>        except SocketTimeout:<br/>            raise ConnectTimeoutError(<br/>                self,<br/>                &quot;Connection to %s timed out. (connect timeout=%s)&quot;<br/>                % (self.host, self.timeout),<br/>            )<br/>    <br/>        except SocketError as e:<br/>&gt;           raise NewConnectionError(<br/>                self, &quot;Failed to establish a new connection: %s&quot; % e<br/>            )<br/><span class="error">E           urllib3.exceptions.NewConnectionError: &lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。</span><br/><br/>C:\Python38\lib\site-packages\urllib3\connection.py:181: NewConnectionError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004C6DBE0&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>&gt;               resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:439: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004C6DDC0&gt;<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;<br/>body = &#x27;mobilephone=18012345677&amp;pwd=1hfahfiewdlisajliad2345&amp;regname=&#x27;<br/>headers = {&#x27;User-Agent&#x27;: &#x27;python-requests/2.25.1&#x27;, &#x27;Accept-Encoding&#x27;: &#x27;gzip, deflate&#x27;, &#x27;Accept&#x27;: &#x27;*/*&#x27;, &#x27;Connection&#x27;: &#x27;keep-alive&#x27;, &#x27;Content-Length&#x27;: &#x27;60&#x27;, &#x27;Content-Type&#x27;: &#x27;application/x-www-form-urlencoded&#x27;}<br/>retries = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>redirect = False, assert_same_host = False<br/>timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None<br/>release_conn = False, chunked = False, body_pos = None<br/>response_kw = {&#x27;decode_content&#x27;: False, &#x27;preload_content&#x27;: False}<br/>parsed_url = Url(scheme=None, auth=None, host=None, port=None, path=&#x27;/futureloan/mvc/api/member/register&#x27;, query=None, fragment=None)<br/>destination_scheme = None, conn = None, release_this_conn = True<br/>http_tunnel_required = False, err = None, clean_exit = False<br/><br/>    def urlopen(<br/>        self,<br/>        method,<br/>        url,<br/>        body=None,<br/>        headers=None,<br/>        retries=None,<br/>        redirect=True,<br/>        assert_same_host=True,<br/>        timeout=_Default,<br/>        pool_timeout=None,<br/>        release_conn=None,<br/>        chunked=False,<br/>        body_pos=None,<br/>        **response_kw<br/>    ):<br/>        &quot;&quot;&quot;<br/>        Get a connection from the pool and perform an HTTP request. This is the<br/>        lowest level call for making a request, so you&#x27;ll need to specify all<br/>        the raw details.<br/>    <br/>        .. note::<br/>    <br/>           More commonly, it&#x27;s appropriate to use a convenience method provided<br/>           by :class:`.RequestMethods`, such as :meth:`request`.<br/>    <br/>        .. note::<br/>    <br/>           `release_conn` will only behave as expected if<br/>           `preload_content=False` because we want to make<br/>           `preload_content=False` the default behaviour someday soon without<br/>           breaking backwards compatibility.<br/>    <br/>        :param method:<br/>            HTTP request method (such as GET, POST, PUT, etc.)<br/>    <br/>        :param url:<br/>            The URL to perform the request on.<br/>    <br/>        :param body:<br/>            Data to send in the request body, either :class:`str`, :class:`bytes`,<br/>            an iterable of :class:`str`/:class:`bytes`, or a file-like object.<br/>    <br/>        :param headers:<br/>            Dictionary of custom headers to send, such as User-Agent,<br/>            If-None-Match, etc. If None, pool headers are used. If provided,<br/>            these headers completely replace any pool-specific headers.<br/>    <br/>        :param retries:<br/>            Configure the number of retries to allow before raising a<br/>            :class:`~urllib3.exceptions.MaxRetryError` exception.<br/>    <br/>            Pass ``None`` to retry until you receive a response. Pass a<br/>            :class:`~urllib3.util.retry.Retry` object for fine-grained control<br/>            over different types of retries.<br/>            Pass an integer number to retry connection errors that many times,<br/>            but no other types of errors. Pass zero to never retry.<br/>    <br/>            If ``False``, then retries are disabled and any exception is raised<br/>            immediately. Also, instead of raising a MaxRetryError on redirects,<br/>            the redirect response will be returned.<br/>    <br/>        :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int.<br/>    <br/>        :param redirect:<br/>            If True, automatically handle redirects (status codes 301, 302,<br/>            303, 307, 308). Each redirect counts as a retry. Disabling retries<br/>            will disable redirect, too.<br/>    <br/>        :param assert_same_host:<br/>            If ``True``, will make sure that the host of the pool requests is<br/>            consistent else will raise HostChangedError. When ``False``, you can<br/>            use the pool on an HTTP proxy and request foreign hosts.<br/>    <br/>        :param timeout:<br/>            If specified, overrides the default timeout for this one<br/>            request. It may be a float (in seconds) or an instance of<br/>            :class:`urllib3.util.Timeout`.<br/>    <br/>        :param pool_timeout:<br/>            If set and the pool is set to block=True, then this method will<br/>            block for ``pool_timeout`` seconds and raise EmptyPoolError if no<br/>            connection is available within the time period.<br/>    <br/>        :param release_conn:<br/>            If False, then the urlopen call will not release the connection<br/>            back into the pool once a response is received (but will release if<br/>            you read the entire contents of the response such as when<br/>            `preload_content=True`). This is useful if you&#x27;re not preloading<br/>            the response&#x27;s content immediately. You will need to call<br/>            ``r.release_conn()`` on the response ``r`` to return the connection<br/>            back into the pool. If None, it takes the value of<br/>            ``response_kw.get(&#x27;preload_content&#x27;, True)``.<br/>    <br/>        :param chunked:<br/>            If True, urllib3 will send the body using chunked transfer<br/>            encoding. Otherwise, urllib3 will send the body using the standard<br/>            content-length form. Defaults to False.<br/>    <br/>        :param int body_pos:<br/>            Position to seek to in file-like body in the event of a retry or<br/>            redirect. Typically this won&#x27;t need to be set because urllib3 will<br/>            auto-populate the value when needed.<br/>    <br/>        :param \\**response_kw:<br/>            Additional parameters are passed to<br/>            :meth:`urllib3.response.HTTPResponse.from_httplib`<br/>        &quot;&quot;&quot;<br/>    <br/>        parsed_url = parse_url(url)<br/>        destination_scheme = parsed_url.scheme<br/>    <br/>        if headers is None:<br/>            headers = self.headers<br/>    <br/>        if not isinstance(retries, Retry):<br/>            retries = Retry.from_int(retries, redirect=redirect, default=self.retries)<br/>    <br/>        if release_conn is None:<br/>            release_conn = response_kw.get(&quot;preload_content&quot;, True)<br/>    <br/>        # Check host<br/>        if assert_same_host and not self.is_same_host(url):<br/>            raise HostChangedError(self, url, retries)<br/>    <br/>        # Ensure that the URL we&#x27;re connecting to is properly encoded<br/>        if url.startswith(&quot;/&quot;):<br/>            url = six.ensure_str(_encode_target(url))<br/>        else:<br/>            url = six.ensure_str(parsed_url.url)<br/>    <br/>        conn = None<br/>    <br/>        # Track whether `conn` needs to be released before<br/>        # returning/raising/recursing. Update this variable if necessary, and<br/>        # leave `release_conn` constant throughout the function. That way, if<br/>        # the function recurses, the original value of `release_conn` will be<br/>        # passed down into the recursive call, and its value will be respected.<br/>        #<br/>        # See issue #651 [1] for details.<br/>        #<br/>        # [1] &lt;https://github.com/urllib3/urllib3/issues/651&gt;<br/>        release_this_conn = release_conn<br/>    <br/>        http_tunnel_required = connection_requires_http_tunnel(<br/>            self.proxy, self.proxy_config, destination_scheme<br/>        )<br/>    <br/>        # Merge the proxy headers. Only done when not using HTTP CONNECT. We<br/>        # have to copy the headers dict so we can safely change it without those<br/>        # changes being reflected in anyone else&#x27;s copy.<br/>        if not http_tunnel_required:<br/>            headers = headers.copy()<br/>            headers.update(self.proxy_headers)<br/>    <br/>        # Must keep the exception bound to a separate variable or else Python 3<br/>        # complains about UnboundLocalError.<br/>        err = None<br/>    <br/>        # Keep track of whether we cleanly exited the except block. This<br/>        # ensures we do proper cleanup in finally.<br/>        clean_exit = False<br/>    <br/>        # Rewind body position, if needed. Record current position<br/>        # for future rewinds in the event of a redirect/retry.<br/>        body_pos = set_file_position(body, body_pos)<br/>    <br/>        try:<br/>            # Request a connection from the queue.<br/>            timeout_obj = self._get_timeout(timeout)<br/>            conn = self._get_conn(timeout=pool_timeout)<br/>    <br/>            conn.timeout = timeout_obj.connect_timeout<br/>    <br/>            is_new_proxy_conn = self.proxy is not None and not getattr(<br/>                conn, &quot;sock&quot;, None<br/>            )<br/>            if is_new_proxy_conn and http_tunnel_required:<br/>                self._prepare_proxy(conn)<br/>    <br/>            # Make the request on the httplib connection object.<br/>            httplib_response = self._make_request(<br/>                conn,<br/>                method,<br/>                url,<br/>                timeout=timeout_obj,<br/>                body=body,<br/>                headers=headers,<br/>                chunked=chunked,<br/>            )<br/>    <br/>            # If we&#x27;re going to release the connection in ``finally:``, then<br/>            # the response doesn&#x27;t need to know about the connection. Otherwise<br/>            # it will also try to release it and we&#x27;ll have a double-release<br/>            # mess.<br/>            response_conn = conn if not release_conn else None<br/>    <br/>            # Pass method to Response for length checking<br/>            response_kw[&quot;request_method&quot;] = method<br/>    <br/>            # Import httplib&#x27;s response into our own wrapper object<br/>            response = self.ResponseCls.from_httplib(<br/>                httplib_response,<br/>                pool=self,<br/>                connection=response_conn,<br/>                retries=retries,<br/>                **response_kw<br/>            )<br/>    <br/>            # Everything went great!<br/>            clean_exit = True<br/>    <br/>        except EmptyPoolError:<br/>            # Didn&#x27;t get a connection from the pool, no need to clean up<br/>            clean_exit = True<br/>            release_this_conn = False<br/>            raise<br/>    <br/>        except (<br/>            TimeoutError,<br/>            HTTPException,<br/>            SocketError,<br/>            ProtocolError,<br/>            BaseSSLError,<br/>            SSLError,<br/>            CertificateError,<br/>        ) as e:<br/>            # Discard the connection for these exceptions. It will be<br/>            # replaced during the next _get_conn() call.<br/>            clean_exit = False<br/>            if isinstance(e, (BaseSSLError, CertificateError)):<br/>                e = SSLError(e)<br/>            elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy:<br/>                e = ProxyError(&quot;Cannot connect to proxy.&quot;, e)<br/>            elif isinstance(e, (SocketError, HTTPException)):<br/>                e = ProtocolError(&quot;Connection aborted.&quot;, e)<br/>    <br/>&gt;           retries = retries.increment(<br/>                method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]<br/>            )<br/><br/>C:\Python38\lib\site-packages\urllib3\connectionpool.py:755: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = Retry(total=0, connect=None, read=False, redirect=None, status=None)<br/>method = &#x27;POST&#x27;, url = &#x27;/futureloan/mvc/api/member/register&#x27;, response = None<br/>error = NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;)<br/>_pool = &lt;urllib3.connectionpool.HTTPConnectionPool object at 0x0000000004C6DDC0&gt;<br/>_stacktrace = &lt;traceback object at 0x0000000004C45F40&gt;<br/><br/>    def increment(<br/>        self,<br/>        method=None,<br/>        url=None,<br/>        response=None,<br/>        error=None,<br/>        _pool=None,<br/>        _stacktrace=None,<br/>    ):<br/>        &quot;&quot;&quot;Return a new Retry object with incremented retry counters.<br/>    <br/>        :param response: A response object, or None, if the server did not<br/>            return a response.<br/>        :type response: :class:`~urllib3.response.HTTPResponse`<br/>        :param Exception error: An error encountered during the request, or<br/>            None if the response was received successfully.<br/>    <br/>        :return: A new ``Retry`` object.<br/>        &quot;&quot;&quot;<br/>        if self.total is False and error:<br/>            # Disabled, indicate to re-raise the error.<br/>            raise six.reraise(type(error), error, _stacktrace)<br/>    <br/>        total = self.total<br/>        if total is not None:<br/>            total -= 1<br/>    <br/>        connect = self.connect<br/>        read = self.read<br/>        redirect = self.redirect<br/>        status_count = self.status<br/>        other = self.other<br/>        cause = &quot;unknown&quot;<br/>        status = None<br/>        redirect_location = None<br/>    <br/>        if error and self._is_connection_error(error):<br/>            # Connect retry?<br/>            if connect is False:<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif connect is not None:<br/>                connect -= 1<br/>    <br/>        elif error and self._is_read_error(error):<br/>            # Read retry?<br/>            if read is False or not self._is_method_retryable(method):<br/>                raise six.reraise(type(error), error, _stacktrace)<br/>            elif read is not None:<br/>                read -= 1<br/>    <br/>        elif error:<br/>            # Other retry?<br/>            if other is not None:<br/>                other -= 1<br/>    <br/>        elif response and response.get_redirect_location():<br/>            # Redirect retry?<br/>            if redirect is not None:<br/>                redirect -= 1<br/>            cause = &quot;too many redirects&quot;<br/>            redirect_location = response.get_redirect_location()<br/>            status = response.status<br/>    <br/>        else:<br/>            # Incrementing because of a server error like a 500 in<br/>            # status_forcelist and the given method is in the allowed_methods<br/>            cause = ResponseError.GENERIC_ERROR<br/>            if response and response.status:<br/>                if status_count is not None:<br/>                    status_count -= 1<br/>                cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status)<br/>                status = response.status<br/>    <br/>        history = self.history + (<br/>            RequestHistory(method, url, error, status, redirect_location),<br/>        )<br/>    <br/>        new_retry = self.new(<br/>            total=total,<br/>            connect=connect,<br/>            read=read,<br/>            redirect=redirect,<br/>            status=status_count,<br/>            other=other,<br/>            history=history,<br/>        )<br/>    <br/>        if new_retry.is_exhausted():<br/>&gt;           raise MaxRetryError(_pool, url, error or ResponseError(cause))<br/><span class="error">E           urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\urllib3\util\retry.py:574: MaxRetryError<br/><br/>During handling of the above exception, another exception occurred:<br/><br/>reg_data = [&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]<br/><br/>    def test_register(reg_data):<br/>        print(f&quot;测试数据为：{reg_data}&quot;)<br/>        url = &quot;http://192.168.150.84:8088/futureloan/mvc/api/member/register&quot;<br/>        cs = {<br/>            &quot;mobilephone&quot;:reg_data[0],<br/>            &quot;pwd&quot;:reg_data[1],<br/>            &quot;regname&quot;:reg_data[2]<br/>        }<br/>&gt;       r = requests.post(url,data=cs)<br/><br/>test_register2.py:18: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/>C:\Python38\lib\site-packages\requests\api.py:119: in post<br/>    return request(&#x27;post&#x27;, url, data=data, json=json, **kwargs)<br/>C:\Python38\lib\site-packages\requests\api.py:61: in request<br/>    return session.request(method=method, url=url, **kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:542: in request<br/>    resp = self.send(prep, **send_kwargs)<br/>C:\Python38\lib\site-packages\requests\sessions.py:655: in send<br/>    r = adapter.send(request, **kwargs)<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _<br/><br/>self = &lt;requests.adapters.HTTPAdapter object at 0x0000000004C6DBE0&gt;<br/>request = &lt;PreparedRequest [POST]&gt;, stream = False<br/>timeout = Timeout(connect=None, read=None, total=None), verify = True<br/>cert = None, proxies = OrderedDict()<br/><br/>    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):<br/>        &quot;&quot;&quot;Sends PreparedRequest object. Returns Response object.<br/>    <br/>        :param request: The :class:`PreparedRequest &lt;PreparedRequest&gt;` being sent.<br/>        :param stream: (optional) Whether to stream the request content.<br/>        :param timeout: (optional) How long to wait for the server to send<br/>            data before giving up, as a float, or a :ref:`(connect timeout,<br/>            read timeout) &lt;timeouts&gt;` tuple.<br/>        :type timeout: float or tuple or urllib3 Timeout object<br/>        :param verify: (optional) Either a boolean, in which case it controls whether<br/>            we verify the server&#x27;s TLS certificate, or a string, in which case it<br/>            must be a path to a CA bundle to use<br/>        :param cert: (optional) Any user-provided SSL certificate to be trusted.<br/>        :param proxies: (optional) The proxies dictionary to apply to the request.<br/>        :rtype: requests.Response<br/>        &quot;&quot;&quot;<br/>    <br/>        try:<br/>            conn = self.get_connection(request.url, proxies)<br/>        except LocationValueError as e:<br/>            raise InvalidURL(e, request=request)<br/>    <br/>        self.cert_verify(conn, request.url, verify, cert)<br/>        url = self.request_url(request, proxies)<br/>        self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)<br/>    <br/>        chunked = not (request.body is None or &#x27;Content-Length&#x27; in request.headers)<br/>    <br/>        if isinstance(timeout, tuple):<br/>            try:<br/>                connect, read = timeout<br/>                timeout = TimeoutSauce(connect=connect, read=read)<br/>            except ValueError as e:<br/>                # this may raise a string formatting error.<br/>                err = (&quot;Invalid timeout {}. Pass a (connect, read) &quot;<br/>                       &quot;timeout tuple, or a single float to set &quot;<br/>                       &quot;both timeouts to the same value&quot;.format(timeout))<br/>                raise ValueError(err)<br/>        elif isinstance(timeout, TimeoutSauce):<br/>            pass<br/>        else:<br/>            timeout = TimeoutSauce(connect=timeout, read=timeout)<br/>    <br/>        try:<br/>            if not chunked:<br/>                resp = conn.urlopen(<br/>                    method=request.method,<br/>                    url=url,<br/>                    body=request.body,<br/>                    headers=request.headers,<br/>                    redirect=False,<br/>                    assert_same_host=False,<br/>                    preload_content=False,<br/>                    decode_content=False,<br/>                    retries=self.max_retries,<br/>                    timeout=timeout<br/>                )<br/>    <br/>            # Send the request.<br/>            else:<br/>                if hasattr(conn, &#x27;proxy_pool&#x27;):<br/>                    conn = conn.proxy_pool<br/>    <br/>                low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)<br/>    <br/>                try:<br/>                    low_conn.putrequest(request.method,<br/>                                        url,<br/>                                        skip_accept_encoding=True)<br/>    <br/>                    for header, value in request.headers.items():<br/>                        low_conn.putheader(header, value)<br/>    <br/>                    low_conn.endheaders()<br/>    <br/>                    for i in request.body:<br/>                        low_conn.send(hex(len(i))[2:].encode(&#x27;utf-8&#x27;))<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                        low_conn.send(i)<br/>                        low_conn.send(b&#x27;\r\n&#x27;)<br/>                    low_conn.send(b&#x27;0\r\n\r\n&#x27;)<br/>    <br/>                    # Receive the response from the server<br/>                    try:<br/>                        # For Python 2.7, use buffering of HTTP responses<br/>                        r = low_conn.getresponse(buffering=True)<br/>                    except TypeError:<br/>                        # For compatibility with Python 3.3+<br/>                        r = low_conn.getresponse()<br/>    <br/>                    resp = HTTPResponse.from_httplib(<br/>                        r,<br/>                        pool=conn,<br/>                        connection=low_conn,<br/>                        preload_content=False,<br/>                        decode_content=False<br/>                    )<br/>                except:<br/>                    # If we hit any problems here, clean up the connection.<br/>                    # Then, reraise so that we can handle the actual exception.<br/>                    low_conn.close()<br/>                    raise<br/>    <br/>        except (ProtocolError, socket.error) as err:<br/>            raise ConnectionError(err, request=request)<br/>    <br/>        except MaxRetryError as e:<br/>            if isinstance(e.reason, ConnectTimeoutError):<br/>                # TODO: Remove this in 3.0.0: see #2811<br/>                if not isinstance(e.reason, NewConnectionError):<br/>                    raise ConnectTimeout(e, request=request)<br/>    <br/>            if isinstance(e.reason, ResponseError):<br/>                raise RetryError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _ProxyError):<br/>                raise ProxyError(e, request=request)<br/>    <br/>            if isinstance(e.reason, _SSLError):<br/>                # This branch is for urllib3 v1.22 and later.<br/>                raise SSLError(e, request=request)<br/>    <br/>&gt;           raise ConnectionError(e, request=request)<br/><span class="error">E           requests.exceptions.ConnectionError: HTTPConnectionPool(host=&#x27;192.168.150.84&#x27;, port=8088): Max retries exceeded with url: /futureloan/mvc/api/member/register (Caused by NewConnectionError(&#x27;&lt;urllib3.connection.HTTPConnection object at 0x0000000004C6D310&gt;: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝，无法连接。&#x27;))</span><br/><br/>C:\Python38\lib\site-packages\requests\adapters.py:516: ConnectionError<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/> ------------------------------Captured stdout call------------------------------ <br/>测试数据为：[&#x27;18012345677&#x27;, &#x27;1hfahfiewdlisajliad2345&#x27;, &#x27;&#x27;, &#x27;0&#x27;, &#x27;20108&#x27;, &#x27;密码长度必须为6~18&#x27;]
<br/></div></td></tr></tbody></table></body></html>